Java I 实验指导书.docx
- 文档编号:25378775
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:24
- 大小:746.88KB
Java I 实验指导书.docx
《Java I 实验指导书.docx》由会员分享,可在线阅读,更多相关《Java I 实验指导书.docx(24页珍藏版)》请在冰豆网上搜索。
JavaI实验指导书
Java程序设计
实验指导书
魏士伟
桂林电子科技大学信息科技学院
二〇〇八年4月
目录
实验一初识java3
实验二输出字母表6
实验三猜数字游戏8
实验四三角形、梯形、圆形的类的封装10
实验五类的实例成员和静态成员13
实验六变量的作用域和this关键字16
实验七按钮有序排列18
实验八密码验证问题20
实验一初识java
1.实验目的
掌握jdk的安装方法;
掌握开发Java应用程序的3个步骤:
编写源文件、编译源文件、运行应用程序;
掌握开发JavaApplet程序的3个步骤:
编写源文件、编译源文件、运行Applet程序;
2.实验内容
2.1根据安装向导提示,在计算机的D:
\目录下安装jdk1.6及配置环境变量和Editplus;
2.2Java开发环境的配置
2.3编写一个简单的Java应用程序,使该程序在Editplus的输出窗口输出两行文字:
“你好,很高兴学习Java”和“weareguaduatestudent”;
2.4编写一个简单的JavaApplet程序,并在JavaApplet中写两行文字“这是一个Applet程序”和“我改变了字体”。
3.实验2.1的实验步骤
1)将jdk1.6.0安装到D:
\jdk1.6.0目录下,
2)右键单击《我的电脑》属性
3)右键单击《我的电脑》属性
4)选择《高级》《环境变量》
5)在系统变量框中新建java_home变量
JAVA_HOME(大小写不区分)指向的是JDK的安装路径,如D:
\jdk1.6.0在该路径下能够找到bin、lib等目录。
值得一提的是,JDK的安装路径可以选择任意磁盘目录。
6)在系统变量框中编辑path变量值
变量值:
%java_home%\bin;%java_home%\jre\bin;注意以英文状态的“;”与前面的值隔开。
PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。
设置方法是保留原来的PATH的内容,并其前面加上“%java_home%\bin;%java_home%\jre\bin;”(注,“%java_home%\bin;%java_home%\jre\bin;”后面的分号“;”一定不能省略,它用来表示此变量值已经结束,与后面的path变量值分开)如下图示:
7)新建系统变量class_path
输入变量值.;%java_home%\lib;%java_home%\lib\tool.jar
首先要注意的是最前面的".;"。
这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件。
为什么CLASSPATH后面指定了tools.jar这个具体文件?
这个是由java语言的import机制和jar机制决定的。
8)基本配置就到此结束了,接下来是验证一下安装设置是否正确。
在开始菜单中选择运行命令输入框输入cmd进入dos操作界面,输入命令java-version,假如出现正确的版本号则说明配置成功。
如下图
4.实验2.2的实验步骤
1)将Editplus安装到D:
\EditPlus3\目录下
2)用Editplus配置JAVA编辑环境
1.配置java编译环境:
打开Editplus,选择"工具""首选项"在弹出的窗口中选择"用户工具";点"组名称",将"工作组1"改成"Java"(当然不改也可以)。
工具组之间可以用快键切换。
组内的程序的快键默认依次是ctrl+1,ctrl2+2...
点击"添加工具""应用程序"。
将菜单文本填写为:
"Java编译";命令填写为:
javac.exe;参数填写为:
$(FileName);初始目录填写为:
$(FileDir);在"捕获输出"前打勾。
这就完成了"Java编译"的配置
2.配置java运行环境
点击"添加工具""应用程序"(在同一个工具组内)。
将菜单文本填写为:
"Java运行";命令填写为:
java.exe;参数填写为:
$(FileNameNoExt);初始目录填写为:
$(FileDir);在"捕获输出"前打勾;完成了"Java运行"的配置
4.实验2.2的实验步骤
1)运行Editplus,点击“文件”“Java”,打开一个.java文件,这个.java文件中已经帮我们写了一些代码,如果不需要刻意删除之。
2)在Editplus编辑区按照模板要求编辑键入源程序,将【代码】替换成java程序代码;
3)保存源文件到D:
/目录下,文件名为Hello.java(如果文件名不是Hello.java可以吗?
为什么?
可以去试验一下,看看有没有报错)。
4)点击“工具”“Java编译”,看一下会出现什么编译信息。
然后,点击“工具”“Java运行”,看一下最后的运行结果又是什么。
初学者在这一步可能会遇到下列提示:
●FilenotFound出现该错误的原因是没有将源文件保存在当前目录中;或者源文件的名字不符合规定,例如,错误的将源文件命名为hello.java或者Hello.java.txt。
要特别注意,Java语言的标识符是区分大小写的。
●出现一些语法错误提示,例如,在汉语状态下输入程序中需要的标点符号等,Java源程序中语句所涉及到的小括号及标点符号都是英文状态下输入的,比如“你好,很高兴学习java”的引号必须是英文状态下的引号,而字符串里的符号没有此限制。
5)运行程序:
5.实验2.3的实验步骤
1.略
2.请按模板要求,将【代码】替换成Java程序代码。
3.编译源文件
4.编写一个html文件FirstApplet.html,该文件保存到c:
\javaworks下,文件内容如下:
5.用浏览器打开FirstApplet.html文件,或用appletviewer打开FirstApplet.html文件,例如:
c:
\javaworks\appletviewerFirstApplet.html
实验二输出字母表
1.实验目的
掌握char类型数据和int类型数据之间的互相转换,同时了解unicode字符表;
2.实验内容
编写一个Java应用程序,该程序在命令行窗口输出字母表;
2.实验步骤
请按模板要求创建Alphabet.java,将【代码】替换为Java程序代码;
4.实验指导
●为了输出字母表,首先获取字母表中的第一个字母和最后一个字母在unicode中的位置,然后使用循环输出其余的字母。
●要观察一个字符在unicode表中的顺序位置,必须使用int类型显示转换,如int(‘a’)。
不可以使用short类型转换,因为char的最高位不是符号位。
●对于windows平台,可以使用字符映射表获取字符在unicode中的顺序位置,开始-》程序-》附件-》系统工具-》字符映射表;
5.实验后的练习
1)将一个double类型的数据直接赋给float类型变量,程序编译时提示怎样的错误?
2)在应用程序的main方法中增加语句:
floatx=0.618;
程序能编译通过吗?
3)在应用程序的main方法中增加语句:
bytey=128;
程序能编译通过吗?
4)在应用程序的main方法中增加语句:
intz=(byte)128;
程序输出变量z的值是多少?
实验三猜数字游戏
1.实验目的
使用if…else语句和while循环语句实现猜数字游戏;
2.实验内容
编写一个Java应用程序,实现下列功能:
1、程序随机分配给客户一个1~100之间的整数;
2、用户在输入对话框中输入自己的猜测;
3、程序提示信息“猜大了”,“猜小了”和“猜对了”;
4、用户根据提示信息再次猜测,直到猜对了;
3.实验步骤
请按模板要求创建GuessNumber.java,将【代码】替换为Java程序代码;
4.实验指导
我们经常用一个while循环来“强迫”程序重复执行一段代码,【代码1】必须是求值为boolean的表达式,只要【代码1】的结果为true,就是让用户继续猜测;只要用户的输入能使得循环语句结束,就说明用户猜对了。
5.实验后的练习
语句System.out.println("猜对了!
");为何要放在while语句之后?
放在while的循环体内合理吗?
6.设计型实验
1、用for语句实现上述的猜数字游戏
2、编程实现求1+1/2+1/3+…+1/(你学号最后三位数字)的值。
例如你的学号是04507423,则求1+1/2+1/3+…+1/423的值是多少。
实验四三角形、梯形、圆形的类的封装
1.实验目的
使用类来封装对象的属性和功能;
2.实验内容
编写一个Java应用程序,该程序中有3个类:
Triangle,Lader和Circle,分别用来描述“三角形”“梯形”“圆形”
2.1定义一个三角形类,具有类型为double的三条边,以及周长、面积属性,具有返回周长、面积以及修改三个边的功能;另外,Triangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。
2.2定义一个梯形类,具有类型为double的上底、下底、高、面积属性,具有返回面积的功能;
2.3定义一个圆形类,具有类型为double的半径、周长、面积属性,具有返回周长、面积的功能;
3.实验步骤
三角形类的程序模板如下:
定义一个梯形类,具有类型为double的上底、下底、高、面积属性,具有返回面积的功能;
程序模板可以参考2.1
定义一个圆形类,具有类型为double的半径、周长、面积属性,具有返回周长、面积的功能;
程序模板可以参考2.1
2.4程序主类
程序模板如下:
4.实验指导
●创建一个对象时,成员变量被分配内存空间,这些内存空间称为该对象的变量,而对象中存放着引用,以确保这些变量由该对象操作使用;
●空对象不能使用,即不能让一个空对象去调用方法产生行为。
假如程序中使用了空对象,程序在运行时会出现异常:
NullPointerException。
由于对象时动态分配实体,所以Java的编译器不对空对象做检查,那么,编写程序时要避免使用空对象。
5.实验思考题
1)程序仅仅省略【代码15】,编译能通过吗?
2)程序仅仅省略【代码16】,编译能通过吗?
3)程序仅仅省略【代码15】,运行时出现怎样的异常提示吗?
4)给Triangle类增加三个方法,分别用来返回三个边;
5)让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径和圆的面积和周长。
实验五类的实例成员和静态成员
1.实验目的
掌握静态成员与实例成员的区别;
学会使用类的静态成员;
2.实验内容
编写一个圆类Circle,其中由圆周率,半径和圆对象个数,其中圆周率和圆对象个数为static成员,此外,Circle中还有两个static方法分别设置圆周率和显示当前圆对象的个数,其余都是实例成员,仔细体会静态成员与实例成员的使用方法和区别。
3.实验步骤
1.按照程序模板输入源程序StaticTest.java
2.编辑源程序并保存,然后在命令行窗口编译形成两个class文件,StaticTest.class和Circle.class,运行主类StaticTest.class,观察程序运行结果。
4.实验指导
这个程序很好的揭示了实例成员和静态成员的区别,静态变量可以在类的所有对象之间共享,如同本例的objectNo和Pi,其中objectNo始终记录着当前该类的对象个数,而对静态变量Pi的修改则会影响到类的所有对象,此外,对于静态成员可以直接用类名访问。
5.实验后的练习
1)将程序中的语句:
System.out.println("cir1圆周率是"+cir1.pi);
cir1.displayNo();
修改成:
System.out.println("cir1面积是"+cir1.pi);
cir1.displayNo();
修改后编译运行,程序会报错吗?
为什么?
接着将语句cir1.setRadius(10);修改成Circle.setRadius(10);又会怎样?
2)现在将圆周率pi的static修饰符去掉,使之称为实例变量,修改后编译运行,会报错吗?
产生错误的原因是什么?
6.设计型实验
1、定义一个圆类circle,它有一个变量radius(半径)。
从键盘输入数据,通过构造函数的参数传递给radius,编程实现计算并输出圆的周长和面积。
但是,必须确保输入的数据不为负数。
实验六变量的作用域和this关键字
1.实验目的
理解变量的作用域;
掌握成员变量,局部变量和块变量的区别;
学会使用this关键字
2.实验内容
编写一个Java程序ScopeTest以反映变量的种类及其作用范围,类ScopeTest中既有类的成员变量,又有方法中的局部变量和参数,甚至还有在方法内部的块中声明的变量,仔细体会这些变量的差异及其用法。
3.实验步骤
1)按照程序模板输入源程序ScopeTest.java
2)仔细阅读分析程序,在编译运行之前,请写下分析得出的运行结果,然后运行观察与分析结果是否一致;
4.实验指导
这个程序中,类ScopeTest与类中的方法show()中声明了同名的变量x,此时,再方法中直接使用x将会屏蔽掉类中声明的x,除非加上this关键字,才能访问类中的x。
但是由于this关键字代表当前对象,因此在静态static方法中不能用this关键字。
此外,在方法的内部块中声明的变量不能和方法中声明的局部变量同名,如在show()方法的循环语句块中声明的变量z不能与方法中声明的变量x,y同名。
5.实验思考题
1)请将程序中的语句z=20;的注释去掉,编译会报错吗?
为什么?
2)程序中有两个方法setx()和setm(),他们分别是对类中的数据x和m进行设置,不过正如所看到的,在方法setm()中使用的是ScopeTest.m=m;现在将它改成this.m=m;编译程序是否会报错,如果确实会报错,请再将setm()方法前面的static修饰符去掉,看看能够编译成功,并解释其中的原因。
3)在程序中的方法show()中定义一个循环语句,在这个循环语句块中声明一个变量z,现在将这个变量z的名字改成y,编译程序,观察有什么情况发生。
实验七按钮有序排列
1.实验目的
了解GUI的概念;
了解java.swt包和javax.swing包,以及比较他们具有的同性质的组件的异同;
掌握和运用java的基本GUI组件,了解他们的特点;
2.实验内容
本实验要求定义三个按钮,让它们按照从左至右的顺序一次排列,显示3个带图标的按钮。
3.实验步骤
1)按照程序模板输入源程序ButtonCounter.java
2)编译并运行程序;
4.实验思考题
1)程序中的语句fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);的作用是什么?
去掉该语句,程序会出现怎样的运行结果?
2)去掉程序中的getContentPane().setLayout(newFlowLayout());程序的运行结果会发生变化吗?
为什么?
3)如果将程序中的按钮组件jbt1换成java.awt包中的Button组件对象,换过后的组件和原来的JButton在外观上有什么不同?
5.设计型实验
1、编写一个华氏温度到摄氏温度的转换程序。
通过一个文本框输入华氏温度,通过一个标签输出相应的摄氏温度。
华氏温度到摄氏温度的转换公式为:
摄氏温度=5/9*(华氏温度-32)
实验八密码验证问题
1.实验目的
进一步了解和掌握javax.swing包中的常用GUI组件;
比较Swing包中的JTextField和JPasswordField在使用中的异同;
初步了解和运用事件处理机制和Action事件的处理;
2.实验内容
编写一个应用程序,实现用户根据自己的密码进入界面,如果用户输入信息正确,则输出“欢迎***用户”,否则用户还可以尝试两次,如果尝试阶段输入信息错误,则输出“请输入正确信息”,如果尝试失败,则退出;
3.实验步骤
1)打开文本编辑器,按照程序模板输入源程序PasswordVerification.java
2)将代码1~代码7替换成适当的代码行;
3)编译并运行程序;
4.实验思考题
1)从给定程序的结果来看,密码输入的回显字符是“*”,如果要把回显字符改成“#”,该如何修改?
2)如果要求在信息输入错误处理中,一旦输入完密码信息,用户输入框和密码输入框都可以清空,请将上述程序修改,使之实现该功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验指导书 实验 指导书