Java从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

第2章 最简单的Java程序

上一章通过与C/C++的比较,详细介绍了Java语言的一些特点。本章将讲述应用程序的开发流程,另外还要讲述开发Java程序所要使用的开发工具,最后会编写一个最简单的Java程序,并通过对程序的具体分析,使读者能够对编写Java代码有一个初步的认识。

本章主要介绍的内容有:

❑Java程序的开发流程

❑Java程序的开发工具

❑Java程序的环境配置

❑编写简单的Java程序

2.1 Java程序的开发流程

本节将详细地讲述一个Java程序的开发流程,即如何去开发一个有价值的应用程序。下面是开发一个应用程序的基本流程。

1)Java程序开发,同其他编程语言程序开发的流程是一样的,最重要的不是编写代码,而是要详细了解客户的需求,针对客户的需求来编写适合客户的应用软件。如果一个应用软件的代码编写完成后,客户临时更改了需求,可能这个更改会让前面做的所有工作都前功尽弃。所以说,首先要详细地了解客户对软件的需求,这里强调的是详细。

2)接下来就是编写代码,其关键是代码的质量。Java语言是面向对象的程序开发语言,而对象和类就是整个程序的关键,一定要将客户的需求抽象为一个个类,再在类中创建多个对象。这样对于整个软件程序代码来说,就是由一个一个很独立的小模块构成的,即使要修改程序,也不会改动太大。

3)另外,针对编写代码时一定要注意,尽量不要在主运行程序中编写太多的代码,尽量把很多实现的步骤规划到某个类的方法中。而在主运行程序中,尽量去调用这些方法函数,这样可以使整个程序代码更易读。

4)在编写完代码后,针对有异常处理的现象要及时地处理,特别在编译的时候不能放过任何一个不起眼的错误。虽然这些错误不一定影响程序运行,但是要防范它们可能会成为程序运行后的致命点。

2.2 开发工具的选择

学过程序设计的人知道,使用Basic语言进行程序设计,可以使用QBasic、Visual Basic(简称VB)等开发工具;使用C语言进行程序设计,可以使用Turbo C、Visual C++、C++Builder等开发工具,这些开发工具集成了编辑器和编译器,是集成开发工具,使用起来很方便。

学习Java程序设计,同样需要方便易用的开发工具。Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑。本节对初学者常用的Java开发工具作一个简单的介绍,从而有助于初学者了解Java常用的开发工具,并且结合自身因素做出选择。

要建立Java开发环境,离不开Sun的Java2 SDK。1998年12月Sun公司发布了Java Software Development Kit(简称Java 2 SDK)。这个开发环境,可在http://Java.sun.com下载,根据运行平台的不同,下载相应的版本,并且设置好Path和ClassPath。这个软件包提供了Java编译器、Java解释器,但没有提供Java编辑器,因此需要使用者自己选择一个方便易用的编辑器或集成开发工具。

2.2.1 开发工具的种类

本节介绍4种常用的开发工具。这4种开发工具各有各的特色,读者可以通过下面的介绍,挑选自己使用方便的开发工具。

1. UltraEdit

UltraEdit是共享软件,是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,其默认配置可以对C、C++、VB、HTML、Java进行语法着色。用UltraEdit编辑Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计,它具有完备的复制、粘贴、剪切、查找、替换、格式控制等功能。在“Advanced”菜单下的“Tool Configuration”菜单项中,配置好Java的编译器Javac和解释器Java,就可以直接编译运行Java程序。

当配置Java时,在Command Line里输入“D:\jsp\j2sdk\bin\Javac %f”(这里“Javac”的路径要根据JDK的实际安装路径来指定,“%f”是指当前活动文档的全文件名),在“Menu Item Name”里输入“Javac”,使它显示在“Advanced”菜单里。此时就可以直接执行并进行编译,而选中“Output To List Box”和“Capture Output”两个复选框,就可以在源代码下面的输出窗口里,看到编译时的错误信息。

当配置不带参数运行的解释器Java时,在Command Line里输入“D:\jsp\j2sdk\bin\Java%n”,在“Menu Item Name”里输入“Java filename”,选中“Output To List Box”和“Capture Output”,运行结果显示在输出窗口里。

当配置带参数运行的解释器Java时,在Command Line里输入“d:\jsp\j2sdk\bin\Java%n%modify%”,在“Menu Item Name”里输入“Java filename parameter”。这样,当执行这个菜单项的时候,会显示一个要求输入参数的对话框,这样配置就可以将编辑、编译等功能集成在一个软件中。

2. EditPlus

EditPlus是共享软件,它也是功能很全面的文本、HTML、程序源代码编辑器,默认支持HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript和VBScript的语法着色。通过定制语法文件,还可以扩展到其他程序语言,可以在“Tools”菜单下的“Configure User Tools”菜单项中配置用户工具,类似于UltraEdit的配置。一旦配置好Java的编译器Javac和解释器Java,通过EditPlus的菜单,就可以直接编译执行Java程序。

3. Jcreator

Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。Jcreator分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但其是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C++编写,速度快、效率高、具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK主目录及JDK JavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help,但目前这个版本对中文支持性不好。

4. Eclipse

Eclipse是一个开源的、可扩展的集成开发环境(IDE),它不仅可用于Java的开发,还能通过开发插件,构建其他的开发工具。Eclipse是开放源代码的项目,可以免费下载。

Releases版本是Eclipse开发团队发布的主要发行版本,是经过测试的稳定的版本,适合要求稳定,而且不需要最新改进功能的使用者选择。对大多数使用者而言,Stable Builds版本是足够稳定的版本,它由开发团队认为比较稳定的Integration Build版本提升到Stable Build而来,适合想使用Eclipse新功能的使用者选择。对于它的Releases版本2.1.x,在Eclipse的官方网站上有一个语言包可以下载,这样Eclipse及其帮助都会是简体中文。

针对Java开发,Eclipse与UltraEdit、Editplus、Jcreator IDE比较,Eclipse显然更专业,功能更强大。

2.2.2 开发工具的安装

对于初学者来说,最好是使用UltraEdit,不要使用图形界面的开发工具。因为图形界面的开发工具有很多都是自动生成的,不利于初学者掌握程序语言的类库,以及整个编程的思路及格式。下面先介绍如何安装UltraEdit开发工具。

首先要下载UltraEdit这个软件,下面就是其安装的步骤详解。

1)双击UltraEdit-32_13.00+4_SC.exe安装文件,打开一个安装向导界面,其中主要介绍了这个软件的一般情况和支持的一些功能,如图2.1所示。

2)单击“下一步”按钮,进入“许可协议”界面。很多用户不愿意看这些协议,其实笔者建议大家还是看看,因为有一些涉及版权的内容,协议界面如图2.2所示。

图2.1 欢迎界面

图2.2 协议界面

3)选中“我同意此协议”单选框,然后单击“下一步”按钮,会出现一个选择安装目录的界面,如图2.3所示。

4)输入安装路径后,单击“下一步”按钮,会出现“选择附加任务”的界面,如图2.4所示。

5)在这个界面中,会出现很多选项,这些选项都是本软件使用时的一些配置。为了将来使用方便,建议将所有的复选框全部选中。这样软件就会拥有注册机、桌面快捷方式等。单击“下一步”按钮,会出现一个“准备安装”的界面,如图2.5所示。

6)至此,设置就全部完成了。单击“下一步”按钮,开始安装,安装的界面如图2.6所示。

7)安装完毕后,会出现完成界面,如图2.7所示。这里有一些选项,建议仅选中“运行UltraEdit”。

图2.3 选择安装目录

图2.4 选择附加任务

图2.5 准备安装

图2.6 安装界面

图2.7 安装完成界面

2.2.3 开发工具的使用介绍

UltraEdit是一款功能强大的文本编辑器,可以编辑文字、Hex、ASCII码,同时也可以取代记事本。其内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件,速度也不会慢。软件附有Html Tag颜色显示、搜寻替换以及无限制的还原功能,一般用户喜欢用其来修改EXE或DLL文件,众多的游戏玩家喜欢用它来修改存盘文件或是可执行文件。

❑软件名称:UltraEdit-32 10.10c

❑软件大小:2908KB

❑软件语言:英文

❑软件类别:共享版/编辑软件

❑运行环境:Win9x/Me/NT/2000/XP

UltraEdit是一款文本编辑器软件,启动速度很快、体积小巧、占用内存较少、编辑功能强大全面。为了更好地介绍其功能,在这里将分为3大功能模块讲述,分别是普通功能、特色功能、额外功能。

普通功能就是作为一个文本工具所应该具有的功能。

❑ File菜单:打开、保存文件等常见的操作。

❑Edit菜单:恢复/重复操作、剪切和复制及粘贴、多项选择、多项删除等全面的编辑功能,Date/Time能在文章中自动加入日期,Toggle Word-Wrap是类似Word的自动换行功能。

❑Search菜单:提供了查找、替换功能、换行定位、书签标记、字数统计等功能。

❑Windows菜单:可以将多个编辑框进行有序排列,并在它们之间随意切换,也可通过直接单击编辑框上的标签,在各个文本间切换。Show File In Browser将直接启动默认浏览器,查看用HTML语言所编辑的网页实际效果,还有直接拖放、文件长度不限制等常规功能。

特色功能则是为了使用方便而设置的特殊功能。

❑Read Only:可以将正在阅读的文件设成只读属性,防止对重要文件进行误操作。

❑拼写检查:Edit\Spell Check提供的拼写检查功能相当好用,感觉很像Word。利用单词库,UltraEdit-32能检查文章中的每个单词,如单词库中不包含所书写的单词,会弹出对话框让用户做出相应处理,用户需改正错词或添加新单词。

❑在第一次使用拼写检查时,如果UltraEdit-32报告“Error opening dictionary C:\PROGRAM FILES\ULTRAEDT\ssceam.tlx”,这是因为UltraEdit-32没有找到配套的字典文件“*.tlx”。UltraEdit-32总共支持英文、法文、德文、西班牙文等8种文字拼写检查,但是需要下载安装相应的字典文件。

❑Web列表功能:这是其他文本编辑工具所不具备的。UltraEdit-32的这个功能,可以很好地对本机或者通过局域网映射的Web站点发布文件进行编辑,大大方便了需要经常更新的站点。

❑支持多种文件格式:UltraEdit-32支持的文件包括:*.TXT、*.DOC、*.BAT、*.INI、C语言源程序*.C、*.CPP、头文件*.H、*.HPP、HTML/Java语言、*.HTML、*.HTM、*.JAVA、*.JAV,基本上覆盖了所有的常见文件类型。如果想让UltraEdit-32支持新类型的文件,可以在“Advanced\Configuration...\File Associations”中添加,如果采用默认安装,鼠标右键菜单中会自动添加UltraEdit-32项。

❑使用“File\Conversions”可以展开UltraEdit-32的文本格式转换菜单,UltraEdit-32提供了在UNIX/MAC与DOS、EBCDIC与ASCII、OEM与ANSI之间文本的相互转换。

❑宏功能:Macro菜单下提供了丰富的宏功能处理,有宏记录、宏编辑、宏调用等,可以简化文本编辑中经常重复的操作,提高效率。

❑颜色显示:UltraEdit-32附有HTML Tag颜色显示功能,能够对所编辑的文件标识起到很重要的作用。

❑单击DOS Command(或按热键F9)会弹出DOS命令框,可以运行DOS指令。如果指令运行后有输出结果(如“DIR”、“MEM”、“Chkdsk”等指令),这些结果便会输出到UltraEdit-32的编辑框中,可以使用UltraEdit的此项功能截取DOS下的文本信息。

❑单击“RunWindows Program”(或按热键F10)会弹出Windows程序调用框,可以调用Windows应用程序。如果程序有输出结果,同DOS命令框一样,这些结果也会输出到UltraEdit的编辑框中。

❑十六进制编辑模式:现在玩家对游戏进行静态修改时,都喜欢将UltraEdit-32作为首选工具。使用Edit\HexEdit将以十六进制显示文件,最右边是ASCII码形式,UltraEdit的这项功能可以代替的DOS下的PC Tools。

❑V8.0版本增加了许多更新的功能:支持功能列表搜索、整合支持HTML Tidy、不同项目使用不同工具、功能列表排序选择、可以不生成临时文件就直接对文档进行操作、添加了“Copy-append”和“Cut-append”等剪贴板增强功能。

额外的功能就是指一些附加的并不经常用到的功能。

❑UltraEdit宏功能:在“Macro”菜单下,提供了丰富的宏功能处理,包括了宏记录、宏编辑、宏调用等,可以简化文本编辑中经常重复的操作,以提高使用效率。

❑UltraEdit字体显示:UltraEdit可以支持系统里安装的所有字体,包括中文Windows和其他外挂字体如RichWin、中文之星等软件中所提供的。如果要选择显示屏幕字体,可以单击“View”|“Set Font”命令;如果要设置打印字体,可以选择“Set Printer Font”命令。

❑UltraEdit命令调用:使用“Advanced”菜单下的选项,可以在UltraEdit环境下直接调用DOS和Windows命令。单击DOS Command命令(或按热键F9),会弹出DOS命令框,可以在里面运行DOS命令,比如DIR、MEM等。

编辑一个Java程序后,需要借助运行环境来编译和运行它,下一节将讲述Java编程环境方面的知识。

2.3 Java编程环境

编程环境,就是让程序代码能在其中编译、运行的环境。本节重点讲述Java的编程环境,其中包括一些类库的安装和配置。

2.3.1 J2SE的下载和安装

JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment)。它是一堆Java工具和Java基础的类库(rt.jar)。不论是什么样的Java应用服务器,其实质都是内置了某个版本的JDK,因此掌握JDK是学好Java的第一步。

最主流的JDK是Sun公司发布的JDK。除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK、BEA公司开发的Jrocket,还有GNU组织开发的JDK等。IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多,而专门运行在x86平台的Jrocket,在服务端运行效率也要比Sun JDK好很多,但不管怎么说,还是需要先把Sun JDK掌握好。

(1)JDK的下载和安装

JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,网址是http://java.sun.com/j2se/downloads.html。建议读者下载1.6版本的JDK。

下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java目录下安装一套需要的包和工具,然后需要在环境变量Path的最前面,增加Java的路径C:\Program Files\Java\jdk1.6.0_10\bin,这样JDK就安装好了。

(2)JDK的命令工具

❑JDK的最重要命令行工具。

❑java:启动JVM执行class。

❑javac:Java编译器。

❑jar:Java打包工具。

❑javadoc:Java文档生成器。

这些命令行必须要非常熟悉,对于每个参数都要精通。关于这些命令的描述,JDK Documentation上有详细的文档。

(3)JDK Documentation

Documentation在JDK的下载页面也有下载链接,建议同时下载Documentation。Documentation是最重要的编程手册,涵盖了整个Java所有方面的描述。可以这样说,学习Java编程,大部分时间都是花在参考这个Documentation上面。

2.3.2 如何设置ClassPath变量

类路径ClassPath告诉Java应用程序,去哪里查找第三方和自定义类,那些类不是Java扩展或Java平台的一部分。

1. 设置ClassPath

在DOS提示符下,可用set命令修改ClassPath环境变量,其格式为:

set classpath=path1;path2 ...
如:setclasspath=C:\ProgramFiles\Java\jdk1.6.0_10\lib\tools.jar;C:\ProgramFiles\Java\jdk1.6.0_10\lib\dt.jar;

路径应该以指定驱动器的字母开头,例如“C:\”,这样,在偶然切换到不同驱动器时仍可找到类(例如,如果路径项以“\”开头,并且当前位于驱动器“D:\”上,则所需的类将在“D:\”而不是“C:\”驱动器上找)。

2. 清除ClassPath

如果ClassPath环境变量被设置成不正确的值,或启动文件、脚本程序设置了不正确路径,则可通过使用下列命令清除ClassPath。

C:> set classpath=

该命令仅清除当前会话的ClassPath,要确保在以后的会话中,具有正确的ClassPath设置,则应该删除或修改启动设置。

3. 更改启动设置

如果在系统启动时设置ClassPath变量,则查找它的位置取决于所使用的操作系统。例如在Windows XP中启动“控制面板”,选择“系统”图标,单击“高级”选项卡,可在“用户变量”部分中,检查ClassPath变量。

2.3.3 如何设置Path变量

先找到安装JDK的目录并复制路径,(如安装在C:\Program Files\Java\jdk1.6.0\bin),然后右击“我的电脑”|“属性”|“高级”|“环境变量”|“系统变量”|Path。单击这一项进行编辑,弹出的对话框变量名应该是Path,变量值是一系列用分号分开的地址,一直将光标拖到最后,加上分号,再把刚才复制的地址粘进来保存就可以。复制的地址如下所示。

C:\Program Files\Java\jdk1.6.0_10\bin;

2.3.4 如何测试环境变量

测试环境变量是否设置成功,可在DOS窗口下直接运行java和javac两个命令。

C:\Documents and Setting\Administrator>javac
C:\Documents and Setting\Administrator>java

如果出现如图2.8所示的界面,说明设置成功了,否则必须重新设置。下面测试“java”这个命令,测试效果如图2.9所示。

图2.8 测试环境变量(一)

图2.9 测试环境变量(二)

2.4 编写最简单的程序

本节将编写一个最简单的程序。通过这个程序段,向读者讲述编程的一些基础知识。从本节开始将真正地进入编程世界。

2.4.1 编写程序代码

设计一个最简单的程序,如代码2.1所示。

代码2.1 hello.java

public class hello
{
      public static void main(String[] args) {
          System.out.println("大家好,欢迎进入Java编程世界!!!");
          }
}

通过使用javac命令来看是否通过编译,如图2.10所示。通过java命令来看看运行结果,如图2.11所示。

图2.10 程序编译图

图2.11 程序运行图

2.4.2 分析程序代码

本节分析上一节的程序段,从结构开始介绍。

public class hello

定义了一个类,类是“public”公共类型的,类名为“hello”。另外,Java中的主类名应该和要保存的Java文件名相同,也就是说,这里定义的类名是“hello”,则文件应该保存为“hello.java”。

public static void main(String[] args)

Java中的主运行方法“public static void main(String[] args)”,和C/C++中的main()作用是一样的,就是所有的程序都从“main()”中开始执行。要执行Java程序,必须有一个包括主运行方法的类。至于“public static void”的含义,读者可以尝试着去掉,看看编译器会提示什么错误。

System.out.println("大家好,欢迎进入Java编程世界!!!");

“System.out.println()”是“Java.lang.*”的一个方法,将字串“大家好,欢迎进入Java编程世界!!!”送到命令行窗口。

2.5 常见面试题分析

2.5.1 Javac xxx.java顺利通过,但Java xxx显示“NoClassDefFoundError?”

答:Java命令在一定的范围(ClassPath)内搜索要用的Class文件,但是未能找到。遇到这类问题,首先请确认没有错敲成java xxx.class。其次,检查ClassPath环境变量,如果设置的该变量没有包含“.”(代表当前目录)的,就会遇到这个问题,解决的方法就是在ClassPath环境变量中加入一项。

2.5.2 导致错误“Exception in thread main java.lang.NoSuchMethodError:main”的原因

答:首先,在程序中每个Java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样;其次,在要运行的类中,有且只能有一个“public static void main(String[] args)”方法,这个方法就是主运行程序。

根据上面的这种Java结构,当遇到Path问题时,操作系统会在一定的范围(Path)内搜索javac.exe。如果没有找到,那么编辑操作系统环境变量,新增一个“JAVA_HOME”变量,设为JDK的安装目录,再编辑Path变量,加上一项“%JAVA_HOME%\bin”,然后关闭当前DOS窗口,再新开一个DOS窗口,就可以使用javac和java命令了。

2.6 本章习题

一、选择题

1. Java源程序经编译后的扩展名是( )。

A. .class

B. .java

C. .jdk

D. .j2se

2. Java配置需要设置( )环境变量。

A. ClassPath

B. OS

C. Path

D. PATHEXT

二、简答题

1.简述一个简单Java程序的构成。

2.说出3种以上的Java开发工具。