1、将J2SDK的lib文件夹的完整路径写入。如图35。图12 CLASSPATH系统变量的配置(2) 进入DOS虚拟环境;(3) 将实验1的程序保存在d:example文件夹下;(4) 使用javac命令编译程序;(如图36)(5) 使用java运行程序。注意包中程序的编译与运行方法。图13 利用JDK环境编译运行Java应用程序(以下实验前请仔细阅读BlueJ教程的电子文档)2在BlueJ环境下新建一个工程,在工程中编写一个简单的 Java 程序,在屏幕上输出”hello,java!”。public class Hello public static void main(String args
2、) 3编译运行 Java 程序。4设置环境变量,在命令行下编译运行Java程序。5浏览运行JDK 自带的 Applet 应用小程序。6在程序中设置断点、单步执行、查看变量值。要求:1、独立完成;并以实际上机操作计成绩;2、所有上机实验必须在下一次实验之前完成,否则此次实验成绩算0分;3、编写实验报告(按照报告模板编写,必须写出详细的实验步骤及必要的屏幕截图)。实验二创建一个Applet了解Applet与Application的区别,学会设计Applet程序。已知JButton类有一个构造函数原形为:public JButton(String text,Icon icon)。其中参数text为显
3、示在按钮上的文本、参数icon为显示在按钮上的图标。下面的例子就是利用此构造函数产生一个带有文本、图标的按钮,并且当按一下按钮,图标就切换一次。此图标切换是在两个图标中循环进行的。程序如下:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class ButtonExample extends JAppletint imageNum=1;public void init( )Container con = getContentPane( );final JButton jb_ok=new JButton(
4、按我,new ImageIcon(sun1.gif);con.setLayout(new FlowLayout();con.add(jb_ok);jb_ok.addActionListener(new ActionListener( )public void actionPerformed(ActionEvent e)if(imageNum = =1)jb_ok.setIcon(new ImageIcon(sun2.gif);imageNum=2;elsejb_ok.setIcon(new ImageIcon(sun1.gif);imageNum=1;);此程序中还用到了JButton类的se
5、tIcon( )方法,用以设置按钮的新的图标。Html文件代码: (文件名为Appcounter.htm)/applet将该文件与ButtonExample.class保存在同一个目录中,使用appletviewer appconmter.htm命令就可以运行这个applet。实验三数据类型及表达式1掌握Java语言的基本数据类型,了解数据类型包装类的概念。2掌握变量和表达式的用法。3理解类型转换的概念。1 输入并运行下面的程序,体会各种基本数据类型的变量的声明、初始化及使用。public class BasicTypespublic static void main(String args)
6、 byte b = 0x88; short s = 0200; int i = 111111; char c =A; float f =.33f; double d =.00001001; boolean bl= true;byte b =+b);short s =+s);int i =+i);long 1 =+1);char c =+c);float f =+f);double d =+d);boolean bl =+bl);思考:(1)上述程序中定义了哪些变量?每个变量的变量名、数据类型和作用域分别是什么?(2)查看程序的运行结果,分析为什么有些变量最后输出的结果和初始化时的不同?2 输入
7、并运行下面的程序并分析结果,体会各种表达式的使用方法。(1)public class ArithmaticOppublic static void main(String args ) int a =5, b=3,c; double d=2.5; c=a/b+a%b;c=+c); d=c*b+a/b*d;d=+d);(2) public class ArithmaticOp2public static void main(String args ) int a,b,c; a=b=c=5; a=+b+c;a=+a+b=+b+c=+c); a=b+c+; a=b+c;a=+a+b=+b+c=+c;
8、(3) public class LogicOppublic static void main(String args ) boolean x, y; x=533*46&!(58+4|5+6float int i1 = c+i; /char+intint long l1 = 1+i1; /long+intlong double d1 =f1/i1d; /float/intfloat,floatdoubledoublef1=+f1);il=+il);l1=+l1);d1=+d1);(1)上面的程序用到了哪些自动类型转换?分别是如何实现的?(2)何时需要用到强制类型转换?强制类型转换可能会造成什么
9、不良后果?提高:1在Java中,数据类型包装类(type wrapper class)用于封装基本数据类型的有关信息和操作。虽然我们经常直接使用Java的基本数据类型,但由于它本身不具备任何操作,无法扩充自身功能,因此,为确保Java语言的纯面向对象特性,Java的语言基础包为数据类型提供了一些对象封装。数据类型包装类是由多个类组成的一个集合,每种数据类型均存在相应的对象封装类。下表列出了Java的数据类型包装及其对应的基本数据类型。基本数据类型 数据类型包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublecha
10、r Characterboolean Boolean每一个类都提供了一些属性和方法,用户可以根据需要来灵活使用。注意:数据类型包装类与相应的基本数据类型名字几乎相同,请不要混淆。前者的显着特点是第一个字母应为大写。2输入并运行下面的程序,了解并掌握数据类型包装类的属性和用法。public class MaxVariables /integers byte largestByte =Byte.MAX_VALUE; /MAX_VALUE是Byte类的属性(表示Byte类所能达到的最大值) short largestShort = Short.MAX_VALUE; int largestIntege
11、r = Integer.MAX_VALUE; long largestLong = Long.MAX_VALUE; /real numbers float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; /other primitive types char aChar=S; boolean aBoolean =true; /display them all The largest byte value is+largestByte);The largest short value is+larg
12、estShort);The largest integer value is+largestInteger);The largest long value is+largestLong);The largest float value is+largestFloat);The largest double value is+largestDouble); /Character类有一个方法boolean isUpperCase(char ch)是用来判断一个字符是 /否是大写 if(Character.isUpperCase(aChar)The character+aChar+is upper
13、case. ); elseThe character+aChar+is lower case. ); The value of aBoolean is+aBoolean);(1)修改上面的程序,让它能输出每种整型数据类型能表示的最小值。(提示:Byte类型的最小值属性是MIN_VALUE)(2)Character类有另一个方法boolean isLowerCase(char ch),可以来判断一个字符是否为小写。修改适当的语句,使程序完成相同的功能。(3)修改上面的程序,使布尔型变量aBoolean具有一个不同的值。实验四控制流程1充分掌握流程控制语句的格式和功能。2熟练运用流程控制语句进行程
14、序设计。3学会进行简单的程序调试。1输入并运行下面两个程序:(1)public class WhileDemo2public static void main (String args) int i =100; while(i100Print+i); i+;(2) public class DoWhileDemo2 do i+ while(i100);运行上面两个程序,比较While和DoWhile语句的执行过程有何不同。2输入并运行下面的程序:public class lxsum public static void main (String args) int i =1,sum; sum=
15、0; while(i=100) sum+=i;sum=+sum);(1)循环一般适用于什么情况?(2)请用for循环和do-while循环为实现上面的程序的功能。3输入并运行下面的程序,体会switch语句的使用。public class lxswitchpublic static void main (String args) int x=1,y=2,i=0,j=0; switch(x) case 1: switch(y) i+ +; break; case 2:j+; default: j+; case2:break;i=+i);j=+j);(1)将你分析程序得到的结果与实际的运行结果相比
16、较,看看有没有什么不同。如果有不同,原因在哪里?(2)break语句在switch语句中起到了什么作用?4 输入并运行下面的程序,判断某一年是否是闰年。闰年的条件是符合下面二者之一:(1)能被4整除,但不能被100整除;(2)能被4整除,又能被400整除。public class JudgeLeapYearpublic staic void main (String args ) /方法1 int year=1800; if(year%4= =0 & year%100!=0)|(year%400= = 0)年是闰年); else年不是闰年); /方法2 year = 1997; boolean
17、 leap; if(year%4!=0) leap=false; else if (year%100! leap = true; else if(year%400! leap = false; if (leap = = true)年不是闰年) /方法3 year=2000; if (year%4= = 0) if (year%100= =0) if (year%400= =0) leap=true; else年不是闰年);(1)程序中是如何判断一个数能被另一个数整除的?(2)请说出程序中用了哪三种方法来判断是否闰年,并体会其中的联系和区别。在输入程序的过程中难免要出错。一般说业,程序中的错误有
18、两种:语法错误和逻辑错误。程序调试就是要找出程序中的错误,编出正确的程序。下面的程序用来输出5次Hello!,请更正程序中的错误,并上机调试运行。public class Hello public static void main(String args) for(i=1;i5;i+); time+i+:Hello! );在MS-DOS下编译该程序,输入javac Hello. java,屏幕上会出现如下错误信息:Hello.java:5:Undefined variable:ifor (i=1;?for(i=1;Undefined varable:i+)7:Hello);4errors可以看
19、到,Java中的错误信息包含如下内容:(1)源程序文件名;(2)出错那一行的行号;(3)出错的类型;(4)出错那一行的内容。根据系统给出的错误信息,可以进行相应的修改。如上面的几个错误,类型都是i,也就是说,变量i尚未定义。于是就可以分析出出错的原因是程序中没有声明变量i就直接使用了它,就是一个语法错误,在源程序中进行相应的修改。修改过的程序内容如下:public class Hellopublic static void main (String args) int i; /新添的变量说明 for (i=1;i + +) System .out. println(time+i+: )对上面的
20、程序再进行编译,顺利通过(屏幕没有出现任何信息)后生成相应的.class文件。运行该文件,结果为:time 5:只输出了一次与题目的要求(输出5次)不符,这是一个逻辑错误。分析结果,发现它只执行了i为5的那一次输出。再次检查程序,发现在for语句的圆括号后面多了一个分号,造成了for语句的循环体实际为空语句。从源程序中将;去掉,重新存盘、编译、运行。结果如下:time1:time2:time3:time4:发现还少输出一次,将循环变量的结束条件为6,重新存盘、编译,运行正确。(1)变量i在程序中起到什么作用?(2)如果将i的初值改设为0,那么应如何改写终止循环的条件?(3)如果将i的初值改设为
21、3,那么应如何改写终止循环的条件?实验五数组1掌握Java中数组的声明、创建、初始化和使用。2了解Java中提供的对数组排序的常用方法。3了解在数组中查找一个特定的值的常用方法。1数组元素的排序是一个经常会遇到的问题,冒泡(起泡)排序法(bubble sort)是一种常用的排序方法。它的基本思想是:对一个具有n个元素的数组,首先将第一个元素的值和第二个元素的值进行比较,若为逆序(即第一个元素的值大于第二个元素的值),则将两个元素交换之,然后比较第二个元素和第三个元素的值,依次类推,直到第n1个元素和第n个元素进行比较、交换为止。如此经过一趟排序,使得值最大元素被安置到最后一个元素的位置上。然后,对前n1个元素进行同样的操作,则具有次大值的元素被安置在第n1个元素的位置上。重复以上过程直到没有元素需要交换为止。此过程可图示如下:初始数组元素: 49 38 65 97 76 13 27第1趟排序之后:38 49 65 76 13 27 97第2趟排序之后:38 49 65 13 27 76 97第3趟排序之后:38 49 13 27 65 76 97第4趟排序之后:38 13 27 49 65 76 97第5趟排序之后:13 27 38 49 65 76 97第
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2