购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 实验指导

1.2.1 常用Java编程环境

Java编程环境很多,可以是简单的文本编辑器类软件,比如TextPad;也可以是集成开发环境,比如NetBeans IDE、Eclipse、IntelliJ IDEA等。

1. Java SE Development Kit(简称JDK)

JDK是Java SE平台面下的Java开发工具包,如果要开发Java程序,则必须获得JDK。JDK包括了JRE( Java运行时环境)以及开发过程中所需要的一些工具程序,常用JDK工具程序的功能见表 1-1。

表1-1 常用JDK工具程序一览表

2.简单的Java程序开发工具——TextPad

TextPad是Wintertree公司开发的文本编辑工具,可以编辑多种类型/格式的文件(如:文本文件、C /C++文件、Java文件、HTML文件),使用简单方便。可以在其中编辑Java源程序,且可以直接编译Java、运行Java Applet和Java Application,很适合初学者进行简单的编辑、编译和运行Java程序。TextPad 4.7.3 中文版的主界面如图 1-1 所示。

图1-1 TextPad 4.7.3 中文版的主界面

3.集成开发环境NetBeans IDE

NetBeans是Sun公司(已被Oracle公司收购)提供的开源软件开发集成环境( IDE),可用于Java、C /C++、PHP等语言的开发,在进行图形用户界面的Java应用程序开发时尤为方便。使用前需要先下载并安装JDK和NetBeans。NetBeans IDE 8.2 的集成环境如图 1-2所示。

图1-2 NetBeans IDE 8.2 的集成环境

下面通过一个简单的“HelloWorld”Java应用程序,简要介绍NetBeans IDE的工作流程。

(1)新建项目

要创建IDE项目,请执行以下操作:

①启动NetBeans IDE。

②在IDE中,选择“文件”菜单中的“新建项目”( Ctrl+ Shift+ N)菜单项,如图 1-3所示。

图1-3 新建项目菜单

③在“新建项目”向导中,展开“Java”类别,选择“Java应用程序”,然后单击“下一步”,如图 1-4 所示。

图1-4 新建项目向导

④在向导的“名称和位置”页中,执行以下操作,如图 1-5 所示。

a.在“项目名称”字段中,键入: HelloWorldApp;

b.在“项目位置”字段,点“浏览”选择合适的保持位置,此处为D: \Java;

c.其余保留默认状态,无须改动信息。

图1-5 向导的“名称和位置”页

⑤单击“完成”,项目被创建,在IDE中打开该项目,可以看到以下子窗格,如图 1-6 所示。

a.“项目”窗格:其中包含项目组件(包括源文件、代码所依赖的库等)的树视图;

b.“源”代码编辑器窗格:其中打开了一个名为HelloWorldApp的文件;

c.“导航”窗格:可以使用该窗口在选定类内部的元素之间快速导航;

d.“输出”窗格:列出编译错误或输出运行结果。

图1-6 新建项目后的主界面

(2)向生成的源文件中添加代码

由于在“新建项目”向导中将“创建主类”复选框保留为选中状态,IDE已经创建了一个框架类。将“Hello World! ”消息添加到框架代码,方法是将以下行:

//TODO code application logic here

替换为以下行:

System. out. println(" Hello World! ");

通过选择“文件”→“保存”来保存所做的更改。

(3)编译并运行程序

由于IDE提供了“在保存时编译”功能,不必手动编译项目即可在IDE中运行它。保存Java源文件时,IDE会自动编译它。

运行程序:选择菜单中的“运行”→“运行主项目”( F6 ),或者单击工具类中的绿色箭头图标。本程序已正常运行的效果如图 1-7 所示。还可以从“项目”窗口中,右击需要运行的类文件,从快捷菜单中选择“运行文件”,这种方式适合逐个运行类文件看其效果。

图1-7 程序运行结果

如果存在编译错误,将在源代码编辑器的左旁注和右旁注中用红色图标标记出来。左旁注中的图标指示对应行的错误,右旁注中的图标显示文件中出现错误的所有区域,其中包括不可见的代码行中的错误。将鼠标悬停在错误标记上,可以查看有关该错误的描述。单击右旁注中的图标,可以跳至出现该错误的代码行。

(4)生成并部署应用程序(可选择)

编写并试运行应用程序后,选择“运行”菜单中的“清理并构建项目”( Shift+ F11),或者右击项目文件名,从快捷菜单选用“清理并构建”命令来生成应用程序以进行部署。

使用“清理并构建”命令时,IDE将执行以下任务:

·删除所有以前编译的文件以及其他生成输出;

·重新编译应用程序并生成包含编译后文件的JAR文件。

可以通过打开“文件”窗口并展开“HelloWorldApp”节点来查看生成输出,如图 1-8 所示。编译后的字节代码文件HelloWorldApp. class位于build /classes/helloworldapp子节点内。包含HelloWorldApp. class的可部署JAR文件位于dist节点内。

图1-8 “文件”窗口

4.集成开发环境Eclipse

Eclipse是IBM公司提供的一个开放源代码的、基于Java的可扩展开发平台,该平台由四部分组成——Eclipse Platform、JDT、CDT和PDE,其中JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。Eclipse的集成环境如图 1-9 所示。

图1-9 Eclipse集成环境

5.集成开发环境IntelliJ IDEA

IntelliJ IDEA是JetBrains公司的产品,提倡智能编码,减少程序员的工作,尤其在智能代码助手、代码自动提示、重构、Java EE支持、各类版本工具( git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面颇具特色。IDEA的集成环境如图 1-10 所示。

图1-10 IntelliJ IDEA集成环境

1.2.2 Java程序文件的结构

Java采用面向对象的编程方式,源程序都是由若干书写形式互相独立的类组成的。根据程序运行环境的不同,Java程序可以划分为两大类:

(1) Java Application,即Java桌面应用程序,可以独立运行。

(2) Java Applet,即Java小程序,需要嵌入html网页中运行。

Java源程序是扩展名为. java的简单文本文件,Java源程序经由Java编译器javac. exe生成字节码文件; Java字节码是扩展名为. class的可解释执行的二进制文件,Java字节码文件由Java解释器java. exe解释执行。

1. Java Application程序的结构

(1) Java Application字符界面

字符界面的程序基本结构如下:

一个Java应用程序必须有一个类包含main()方法,main方法所在的类是应用程序的主类,也是应用程序运行时的入口。一个程序中有多个类时,主类可以是非public类,但运行时要调用主类名。

(2) Java Application图形界面

图形用户界面( GraphicalUser Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形界面的Java应用程序可以通过各种组件响应用户操作,实现复杂的交互功能,是目前广泛采用的桌面应用程序界面。

图形界面的程序基本结构如下:

如果要用Swing组件设计图形界面,则需要在上面的框架中,增加一行代码:

import javax. swing. *;//加载javax. swing包中的类

同时将类声明改为:

public class类名extends JFrame //声明该类是继承于JFrame类的子类

其余结构相同。

2. Java Applet小程序的结构

Java Applet是用Java语言编写的一种不能单独运行但可嵌入在其他应用程序中的小程序。一般嵌入在HTML编写的Web页面中,可以通过< applet >标记把XXX. class嵌入到页面中,由Web浏览器内部包含的Java解释器来解释运行。

Java Applet程序需要在Web浏览器中运行,浏览器运行时自带窗口,所以Java Applet适合以图形化界面展示,其初始化代码一般写在Applet类的init()方法中,运行时自动执行。Applet程序不以main方法为主入口,所以无须包含main方法。

Java Applet的程序结构如下:

嵌入相应的HTML网页文件中的代码如下:

注:代码中的height = 400,width = 500 是设置Applet在网页上的显示区域大小,此数值仅供参考,可根据需要适当修改。

1.2.3 实验例题

本节共设计了 7 道例题,其中基础题 4 道、提高题 2、综合题 1 道,例题演示了如何用Java语言实现各种形式的文本输出、如何用基本的AWT组件进行简单的图形用户界面设计、如何显示图片、如何设置字体、如何设置颜色、如何响应简单的用户动作事件,并提供了一些常见的算法。

例题中应用了部分后续章节才学到的知识点,第一次实验时可先模仿练习使用,待学过后续章节再进一步消化吸收这些知识点。

【基础题】

【例1-1】 编写一个Java Application程序,用字符界面输出两句文字:“祝大家学习顺利!”“期待大家早成Java编程高手!”。

解: 操作步骤如下:

(1)打开TextPad

在文本编辑窗口输入一行代码:

public class JavaExample1_1

(2)保存Java源程序文件

执行“文件”菜单的“另存为”命令,输入文件名(本例为JavaExample1_1,建议从刚输入的代码中复制、粘贴类名,不容易出错),保存文件类型选择“Java(*. java) ”,如图 1-11所示。

注意: 源代码文件名必须与此处public类名完全一致,即JavaExample1_1,若字母大小写不一致,将无法通过编译。

图1-11 “另存为”窗口

保存为Java源程序文件后,编辑区将自动显示为Java语法敏感格式,关键字为蓝色,括号为红色,系统自带的API为深蓝色,如果拼写不正确则为黑色,以便于发现输入错误。

(3)在代码编辑窗口继续输入全部代码

本例程序清单如下:

每行代码输入完毕按回车键,系统会自动按Java编程规范缩进。此外,输入左大括号“{”回车后,系统会自动将随后输入的代码按规范的格式产生一次缩进,输入右大括号“}”时,系统还会自动与之前的“{”匹配对齐,使得源程序格式整齐规范。

注意: Java语言是区分字母大小写的,在输入上述程序时,注意字母大小写,特别是所有标点符号均需要采用英文输入法状态下的半角符号。

(4)编译和运行

首先从“工具”菜单中单击编译“Java”,如果有错误需要对代码进行修改。编译通过后,回到源程序编辑窗口,再单击“运行Java应用程序”,如图 1-12、图 1-13 和图 1-14 所示。

图1-12 编译Java源程序

图1-13 Java源程序编译成功

图1-14 运行Java应用程序

本程序运行结果如图 1-15 所示。

图1-15 JavaExample1_1 的运行结果

思考: 如何修改代码以实现图 1-16 所示的分行效果?

提示: 可以在字符中用换行符\n实现,也可以用println()方法实现换行。

图1-16 修改代码后的运行结果

【例1-2】 编写一个Java Application程序,在图形界面上分别用标签和文本框输出 2个成语:“勤能补拙”“水滴石穿”。

解: 操作步骤同例 1-1,保存时注意源文件名应为: JavaAppGraphics. java。

程序清单如下:

本程序运行结果如图 1-17 所示。

图1-17 JavaAppGraphics的运行结果

思考: 若改用两个标签或者两个文本框来显示以上文字,如何修改代码?

【例1-3】 编写一个Java Applet小程序,用图形界面输出两句文字:“如何快速成为Java高手?”“每天敲 100 行代码、坚持 100 天!^_^”。

解: 操作步骤与例 1-1 基本相同,保存时注意源文件名应为: JavaAppletShow.java,且最后一步选择:“运行Java Applet”,如图 1-18 所示。

程序清单如下:

图1-18 运行Java Applet的菜单命令

本例运行结果如图 1-19 所示。

图1-19 JavaAppletShow的运行结果

【例1-4】 编写一个Java Application字符界面程序,对输入的一个 3 位数,判断其是否为水仙花数。

解: 水仙花数是一个三位数,其各位数字的立方和等于这个数本身。程序中通过Scanner类的nextInt()方法获取输入的整数,通过while循环实现多次输入并判断。首先判断是否为结束标志 0,接着判断如果是一个三位数,则求出其百位、十位、个位上的数字i、j、k,再判断i、j、k的立方和是否等于该数n,如果是则输出该数是水仙花数,否则输出不是水仙花数。程序中用到了Math.pow(x,3),这是Java中用来求某数x立方的API。

程序清单如下:

本例运行结果如图 1-20 所示。

图1-20 IsNarcissus类的运行结果

【提高题】

【例1-5】 Java基本数据类型与流程控制结构的综合使用示例。

解: 本例源程序由 2 个类组成,包含main()方法的主类名为Example1_5,另外一个普通类名为Process,其中封装了 8 个方法,用不同算法分别实现了一些常用功能。在主类中创建了一个Process的对象p,通过p调用了每个方法。

程序清单如下:

本例运行时需要带参数,从TextPad的“工具”菜单中选择“运行……”命令,在对话框中填写如图 1-21 所示的信息,当类名后所给参数为 1 时,运行结果如图 1-22 所示,当所给参数为 5 时,运行结果如图 1-23 所示。

建议:根据程序清单中的代码,测试带不同参数(1 ~7 之间某一个数字)的运行情况,逐行分析输出结果,以加深对Java语法基础知识的理解。

图1-21 为Example1_5 类给定参数的运行界面

图1-22 Example1_5 类带参数 1 时的运行结果

图1-23 Example1_5 类带参数 5 时的运行结果

【例1-6】 编写一个Java图形界面程序,实现多张图片的轮播。

解: 方法 1——用Applet小程序实现文本和图片的显示,并进行简单的用户动作事件响应。该类继承于Applet类,程序中用数组存储多张图片,单击“下一张”按钮,更换一张新图片;当显示至最后一张图片时,再单击按钮,则自动从第一张图片重新开始显示。

程序清单如下:

本例采用Applet小程序结构实现的运行结果如图 1-24 所示。

图1-24 UseArrayPic类的运行结果

方法 2——用Application程序实现图片的显示并进行用户动作事件响应。该类继承于JFrame,与方法 1 不同的是没有用paint()方法绘图,而是直接改用标签组件JLabel来显示图片,并且设置了图片按给定的尺寸显示在标签上。此外,用本类的构造方法替代Applet的init()方法来实现图形界面的初始化,在main()方法中构造了该窗体对象。

本例采用Application程序结构实现的运行结果如图 1-25 所示。

图1-25 UseArrayPicJLabel类的运行结果

方法 3——用JavaFX技术编程实现。JavaFX是开发富客户端的Java API,目的是为富客户端应用程序提供一个现代、高效、功能齐全的工具包,适用于基于Java的桌面、移动端和嵌入式系统开发。用JavaFX编写的图形界面程序要定义成Application类的子类,与前两种方法的程序结构有所不同,请注意其中差别。程序清单如下:

本例采用JavaFX技术实现的运行结果如图 1-26 所示。

图1-26 UseJavaFX类的运行结果

【综合题】

【例1-7】 编写一个Java Application图形界面程序,实现以下功能:

(1)在文本框中输入一个数值,单击“求平方”按钮,则在文本域中输出该数的平方;

(2)在文本框中输入一行字符串,单击“统计”按钮,则对字符串中包含的数字、大写字母、小写字母及其他字符的个数进行统计,并在文本域中分行输出统计结果;

(3)在文本框中输入一行字符串,单击“排序”按钮,则对字符串按ASCII码升序排列并在文本域中输出。

解: 本例综合应用了Java语言基础的相关知识,如:用数组的长度属性chs.length作为循环上界;数据类型转换double x = Double. parseDouble ( s) ;字符串转换为字符数组s. toCharArray(); if单分支、for循环、if-else if-else多分支结构的嵌套;逻辑运算符&&;自增运算符++ ;换行符\n;增强for循环for(char c: chs)等。此外,提前用到了少量后续章节的知识,如:设置字体、设置颜色、用匿名类实现窗口上“X”按钮的关闭功能、判断事件源的两种方法、Arrays类的排序方法sort()等,供感兴趣的学习者参考练习。

程序清单如下:

本例运行后,在文本框输入数字,单击“求平方”,结果如图 1-27 所示。

图1-27 单击“求平方”按钮的运行结果

若输入其他大小写混合字符,单击“统计”按钮,则在下方的文本域中输出分类统计结果,如图 1-28 所示。

图1-28 单击“统计”按钮的运行结果

单击“排序”按钮,则在下方的文本域中按照ASCII码顺序输出排序后的字符串,如图1-29 所示。

图1-29 单击“排序”按钮的运行结果

1.2.4 初学者编程时的常见问题

Java初学者,特别是有一定C语言或者VB编程基础的同学,容易将过去的编程习惯带入到Java编程中,造成一些编译错误。常见问题归纳如下:

① Java是大小写敏感的语言,不管是在文件名中还是在源程序中,都要注意字母的大小写问题。

②Java源程序保存时,文件名应该和源程序中的主类名一致,不可随意取名。避免出错的技巧是:保存时先复制类名,再粘贴,不要自己输入文件名。

③源程序中的标点符号都是英文的,如果在中文输入状态下输入了引号、逗号、分号等标点符号,则会引起编译错误。排查技巧:外观看起来比较“胖”的标点符号,十有八九是中文符号。

④除了类头、方法头、程序控制、判断等部分特殊语句外,Java每行语句以分号“;”结束。特别要小心的是:不要在for()、while()这行语句后面加分号“;”。

⑤ Java Applet和Java Application程序结构不完全相同,在一种结构中必需的代码内容,在另外一种结构中不一定需要,有些方法含义特殊,不能照抄。最容易被混淆的方法有:main()、init()、paint(),其用法请参阅前面的例题。此外,在运行Java程序时,很有可能因为没有正确区分Java Application和Java Applet的程序结构而导致运行错误。

⑥图形界面与字符界面的输入输出方式不同,尽量不要混用,比如:在图形界面中尽量不要出现System.out.println("");因为用户一旦看到了图形用户界面,一般就不会再留意到DOS控制台的输出内容。

⑦在TextPad中调试Java程序时,如果看到报错,用鼠标双击报错内容,系统会自动跳到源程序中的对应位置。

⑧面对Java编译器报出的诸多错误时不要紧张,很可能是前面所说的第(1)(3)条引起的,将错误修改后重新编译程序,之前的错误可能就自动消失了。 /9lEqGrIxK9b0YDx1Yjoqg9bHKtHB5xVRhzilqaqepus3yxjiBpIrA9C41F2z0DK

点击中间区域
呼出菜单
上一章
目录
下一章
×