1、窗体顶端实验 1 Java语言基础一、实验目的 1了解JDK的安装与使用、熟悉Java的运营环境。2掌握编写与运营 Java Application程序的方法。 3. 掌握编写与运营 Java Applet程序的方法。4 纯熟掌握Java中的数据类型、运算符、表达式及流程控制语句。5 掌握数组的定义、建立及其使用方法。6. 熟悉Java一般程序的结构。7 通过以上内容,掌握 Java 语言的编程规则。 二、实验规定 1 安装并设立 Java SDK 软件包。 2 编写一个Java 应用程序,在屏幕上输出”hello,java!”。3编写一个Java 小应用程序,在屏幕上输出”hello,jav
2、a!”。4掌握运营 Java 程序的环节。5浏览 SDK 自带的 Applet 应用小程序。6编写一个声明 Java 不同数据类型变量的程序。 7编写一个使用运算符、表达式、变量的程序。 8编写表达式语句、复合语句的程序。9编写使用不同选择结构的程序。10编写使用不同循环结构结构的程序。11编写一个使用 Java 数组的程序。三、实验内容(一)SDK 的下载与安装1 机器规定 Java 对机器运营规定不高。下面给出的是基于Windows 平台的机器规定。硬件规定:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。软件规定:Windows98/Me/XP/NT/2023,IE 5 以上
3、。2 下载SDK 为了建立基于SDK 的Java 运营环境,需要先下载Sun 的免费SDK 软件包。SDK 包含了一整套开发工具,其中包含对编程最有用的是Java 编译器、Applet 查看器和Java 解释器。在浏览器中输入 J2SE v 1.4.2_01 ”栏可以选择下载 J2SE v 1.4.2_01 SDK 软件包。有两种选择:一种是在线安装“Windows Installation”;一种是离线安装“Windows Offline Installation”。3 安装SDK运营下载的“j2sdk-1_4_2_01-windows-i586.exe”软件包,可安装SDK,在安装过程中可
4、以设立安装途径及选择组件,系统默认的安装途径为C: j2sdk1.4.2_01(这里选择C 盘),默认的组件选择是所有安装。4 SDK 中的重要文献夹和文献安装成功后,C: j2sdk1.4.2_01 中的文献和子目录其中,bin 文献夹中包含编译器(javac.exe)、解释器(javac.exe)、Applet 查看器(appletviewer.exe)等可执行文献。(二)设立环境变量SDK 中的工具都是命令行工具,需要从命令行即MSDOS 提醒符下运营它们。很多人也许会不习惯,但这是Sun 特意采用的策略,为的是把精力更多地投入到Java 语言自身而不是花在开发工具上。为了能对的方便的使
5、用SDK,可手工配置一些Windows 的环境变量,Windows 98 与Windows/xp/NT/2023 的配置略有不同。下面以Windows/xp/NT/2023为例说明相关配置。1 设立Windows XP/NT/2023l 在桌面“我的电脑”图标上单击右键,选择“属性”菜单,将出现系统特性设立界面。l 在“高级”选项卡中单击“环境变量”按钮。将出现“环境变量”设立界面。l 在“系统变量”框中选择“Path”,然后单击“编辑”按钮,在出现的“编辑系统变量”对话框中。l 在“变量值”栏的命令前添加“C:j2sdk1.4.2_01bin”命令。l 用同样方法设立环境变量“classpa
6、th”,其值为“C:j2sdk1.4.2_01lib”命令。l 设立完毕后,单击“开始”“所有程序”“附件”“命令提醒符”打开DOS 窗口,在命令提醒符下输入“java”或“javac”,回车后,假如出现其用法参数提醒信息,则安装对的。2设立DOS 起始位置为了在打开DOS 窗口时可以直接进入包含你开发的java 程序的途径下,下面以Windows XP/2023为例说明设立过程。l 一方面建立一个存放java 源程序的途径和文献夹,如将实验中建立的java 源程序都存放在为“C:j2sdk1.4.2_01bin”文献夹中。l 单击“开始”“所有程序”“附件”“命令提醒符”,选择“命令提醒符”
7、选项右击,l 在出现的下拉菜单中选择“属性”菜单,将打开“命令提醒符 属性”对话框。l 在“命令提醒符 属性”对话框中选择“快捷方式”选项,在“起始位置”栏输入“C:j2sdk1.4.2_01bin ”,单击“拟定”按钮。l 进行了上面的设立后,打开DOS 窗口时将直接进入“C:j2sdk1.4.2_01bin ”途径下。l 假如没有进行上述设立,可使用DOS 命令,直接输入“C:”按回车进入到C盘,再输入“cd j2sdk1.4.2_01bin ”即可到“C:j2sdk1.4.2_01bin ”途径下。(三)编写Java application源程序1 打开一个纯文本编辑器,键入如下程序:
8、public class Hello public static void main(String args) System.out.println(Hello,welcome!);2 将文献命名为Hello.java,保存为文本文献格式文献,注意保存文献的途径。根据前面环境变量的设立,Hello.java 应当保存在“C:j2sdk1.4.2_01lib ”的途径下。3 编译Java application源程序Java 源程序编写后,要使用Java 编译器(javac.exe)进行编译,将Java 源程序编译成可执行的程序代码。Java 源程序都是扩展名为 .java 的文本文献。编译时一
9、方面读入Java 源程序,然后进行语法检查,假如出现问题就终止编译。语法检查通过后,生成可执行程序代码即字节码,字节码文献名和源文献名相同,扩展名为 .class。l 打开命令提醒符窗口(MSDOS 窗口)进入Java 源程序所在途径。l 键入编译器文献名和要谝译的源程序文献名。javac Hello.javal 按回车键开始编译(注意:文献名H 要大写,否则运营会出问题)。l 假如源程序没有错误,则屏幕上没有输出,键入 “dir”按回车键后可在目录中看到生成了一个同名字的.class 文献“Hello. class”。否则,将显示犯错信息。4 运营Java application程序使用Ja
10、va 解释器(java.exe)可将编译后的字节码文献Hello.class 解释为本地计算机代码。在命令提醒符窗口或MSDOS 窗口键入解释器文献名和要解释的字节码文献名java Hello,按回车键即开始解释并可看到运营结果。(四)编写Java applet源程序1. 打开一个纯文本编辑器,键入如下程序:HelloApplet.java import java.awt.Graphics; import java.applet.Applet; public class HelloApplet extends Applet public void paint(Graphics g) g.dra
11、wString(“Hello,welcome!”, 10,20); 2. 编译java小程序 javac HelloApplet.java3. 建立index.html文献,嵌入HelloApplet.class 4. 浏览html文献l 使用appletviewerappletviewer index.htmll 使用常规的浏览器(五)浏览SDK 自带的Applet 应用小程序在下载的C:j2sdk1.4.2_01demoappletsClock 文献夹中用浏览器打开网页文献example1.html,就可以看到一个嵌入到Web 页面的Applet 开始运营,一个模拟时钟出现在网页上。(六)
12、 声明不同数据类型的变量 1编写声明不同数据类型变量的程序文献 SY2_1.java,源代码如下: public class SY1_1 public static void main(String args) byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c=a; float f=0.23F; double d=0.7E-3; boolean B=true; String S=这是字符串类数据类型; System.out.println(字节型变量 b = +b); System.out.println(短整
13、型变量 s = +s); System.out.println( 整型变量 i = +i); System.out.println(长整型变量 l = +l); System.out.println(字符型变量 c = +c); System.out.println(浮点型变量 f = +f); System.out.println(双精度变量 d = +d); System.out.println(布尔型变量 B = +B); System.out.println(字符串类对象 S = +S); 2 编译并运营该程序。 (七) 使用关系运算符和逻辑运算符 1建立使用关系运算符和逻辑运算符的程
14、序文献,源代码如下: class SY1_2 public static void main(String args) int a=25, b=20, e=3, f=0; boolean d=ab; System.out.println(a=25,b=20,e=3,f=0); System.out.println(由于关系表达式 a5) System.out.println(由于 e 非 0 且 a/e 为 8 大于 5,所以输出 a/e +a/e); if (f!=0 & a/f5) System.out.println(a/f = +a/f); else System.out.printl
15、n(由于 f 值为 0,所以输出 f = +f); 2编译并运营该程序。(八) 使用表达式语句与复合语句 1 建立包含表达式语句程序,源代码如下:class SY1_3 public static void main(String args) int k, i=3, j=4; k=20*8/4+i+j*i; System.out.println(表达式(20*8/4+i+j*i)+k); 2 建立包含复合语句程序,源代码如下: class SY1_4 public static void main(String args) int k, i=3, j=4; k=i+j; System.out.
16、println(在复合块外的输出 k=+k); float f; f=j+4.5F; i+; System.out.println(在复合块内的输出 f=+f); System.out.println(在复合块内的输出 k=+k); System.out.println(在复合块外的输出 i=+i); 3 编译并运营上述两个源程序。4 将变量 i 在块内定义会如何?改变其他变量的位置看看会发生什么变化。 思考:指出程序的复合结构以及变量的使用范围。 (九) 使用选择语句 1使用 if.else 语句 l 程序功能:使用 if.else 语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下面
17、两者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除。 l 编写源程序文献,代码如下。public class SY1_5 public static void main(String args) boolean leap; int year=2023; if (year%4=0 & year%100!=0) | (year%400=0) / 方法 1 System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2023; / 方法 2 if (year%4!=0) le
18、ap=false; else if (year%100!=0) leap=true; else if (year%400!=0) leap=false; else leap=true; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2050; / 方法 3 if (year%4=0) if (year%100=0) if (year%400=0) leap=true; else leap=false; else leap=false; else leap=fal
19、se; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); l 编译运营程序思考:本程序中有几个选择语句,哪些具有嵌套关系? 2使用 switch 语句 l 程序功能:在不同温度时显示不同的解释说明。l 程序源代码如下: class SY1_6 public static void main(String args) int c=38; switch (c10?1:c25?2:c35?3:4) case 1: System.out.println( +c+ 有点冷。要多穿衣服。
20、); case 2: System.out.println( +c+ 正合适。出去玩吧。); case 3: System.out.println( +c+ 有点热。); default: System.out.println( +c+ 太热了!开空调。); l 编译运营程序(十) 使用循环语句 1 for 循环语句练习 l 程序功能:按 5 度的增量打印出一个从摄氏温度到华氏温度的转换表。 l 程序源代码如下: class SY1_7 public static void main (String args) int h,c; System.out.println(摄氏温度 华氏温度); f
21、or (c=0; c=40; c+=5) h=c*9/5+32; System.out.println( +c+ +h); l 编译并运营程序。 2 while 循环语句练习 l 程序功能:运营程序后从键盘输入数字 1/2/3 后,可显示抽奖得到的奖品;假如输入其它数,字或字符显示“没有奖品给你!”。 l 程序源代码如下: import java.io.*; class SY1_8 public static void main(String args) throws IOException char ch; System.out.println(按 1/2/3 数字键可得大奖!); Syst
22、em.out.println(按空格键后回车可退出循环操作.); while (ch=(char)System.in.read()!= ) System.in.skip(2); / 跳过回车键 switch (ch) case 1: System.out.println(恭喜你得大奖,一辆汽车!); break; case 2: System.out.println(不错呀,你得到一台笔记本电脑!); break; case 3: System.out.println(没有白来,你得到一台冰箱!); break; default: System.out.println(真不幸,你没有奖品!下次
23、再来吧。); l 编译源程序。 l 在命令提醒符窗口运营程序,然后分别按 1、2、3、r ,记录结果。3dowhile 循环语句练习 l 程序功能:求 12+100 之和,并将求和表达式与所求的和显示出来。 l 程序源代码如下: class SY1_9 public static void main(String args) int n=1, sum=0; do sum+=n+; while (n=100); System.out.println(1+2.+100 =+sum); l 编译并运营程序。4多重循环练习 l 输出九九乘法表的程序,源代码如下: public class SY1_10
24、 public static void main(String args) int i,j,n=9; System.out.print( * |); for (i=1;i=n;i+) System.out.print( +i); System.out.print(n-|); for (i=1;i=n;i+) System.out.print(-); System.out.println(); for (i=1;i=n;i+) System.out.print( +i+ |); for (j=1;j=i;j+) System.out.print( +i*j); System.out.printl
25、n(); l 编译并运营程序。(十一)使用数组1建立程序文献,源代码如下:class SY1-11public static void main(String args) int list =new int5; System.out.println(list数组的长度为:+list.length); for(int i=0;ilist.length;i+) listi=i*5; System.out.println(list+i+=+listi); l 编译并运营该程序,写出运营结果。四、实验练习题1 编写一个application,在屏幕上显示如下的信息:*Welcome *2 将上题改写为
26、Applet小程序3 一个Java application,输出一个整数数组中最大和最小的元素、平均值以及所有元素的和。4 一个班有10名学生,每个学生有姓名、学号、成绩等等信息,请运用对象数组的概念编程,求平均成绩。窗体底端窗体顶端实验 2 类与对象一、实验目的 1 掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2 掌握如何构造一个类和如何创建一个对象,了解类与对象的关系;3 掌握修饰符和构造方法的使用规则;4 掌握如何创建包,通过包如何管理类;5 掌握Java的继承机制和实现多态的方法。二、实验规定 1 编写一个体现面向对象思想的程序。 2 编写一个创建对象和使用对象
27、的方法的程序。3 编写不同成员变量、成员方法修饰方法的程序。 4 编写创建自定义包的程序。5 编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。 6 编写体现类的多态性(成员方法重载、构造方法重载)的程序。三、实验内容 (一)创建 Applet 应用小程序 1创建一个 Applet 应用程序 SY2_1.java 文献。 l 程序功能:建立一个 Applet 小程序,使其可以进行简朴的加法运算。该程序要包含类、接口、属性、方法、事件等面向对象的基本元素。 l 程序源代码如下: import java.awt.*; import java.awt.event.*; import ja
28、va.applet.Applet; public class SY2_1 extends Applet implements ActionListener Label label1=new Label(+); Label label2=new Label(=); TextField field1=new TextField(6); TextField field2=new TextField(6); TextField field3=new TextField(6); Button button1=new Button(相加); public void init() / 初始化 add(fie
29、ld1); add(label1); add(field2); add(label2); add(field3); add(button1); button1.addActionListener(this); public void actionPerformed(ActionEvent e) / 解决按钮事件 int x=Integer.parseInt(field1.getText()+Integer.parseInt(field2.getText(); field3.setText(Integer.toString(x); / 数值转换为字符串 2 编写一个浏览 Applet 应用程序的
30、页面文献 SY2_1.HTML,源代码如。 3 将 SY2_1.java 源程序编译为 SY2_1.class 文献 4 使用浏览器或使用小程序查看器浏览 SY2_1.HTML 文献(即在命令提醒符窗口输入:appletviewer SY2_1.HTML),运营。(二)创建对象并使用对象 1编写 Applet 程序 l 程序功能:这个 Applet 程序要在页面上输出两个矩形,并伴有文字输出。 l SY2_2.java 程序的源代码如下: import java.awt.*; import java.applet.Applet; public class SY2_2 extends Apple
31、t MyBox b1=new MyBox();/创建对象 b1 MyBox b2=new MyBox(170,20,60,60); /创建对象 b2 public void paint(Graphics g) b1.setPosition(20,20); b1.setSize(60,60); b1.draw(g); g.drawString(矩形 1 的 X 位置: +b1.getX(), 20, 100); g.drawString(矩形 1 的 Y 位置: +b1.getY(), 20, 120); b2.draw(g); g.drawString(矩形 2 的 X 位置: +b2.get
32、X(), b2.getX(), b2.getY()+80); g.drawString(矩形 2 的 Y 位置: +b2.getY(), b2.getX(), b2.getY()+100); class MyBox private int x, y, width, height; MyBox() x=0; y=0; width=0; height=0; MyBox(int xPos, int yPos, int w, int h) x=xPos; y=yPos; width=w; height=h; public void setPosition (int xPos, int yPos) x=
33、xPos; y=yPos; public void setSize (int w, int h) width=w; height=h; public int getX() return x; public int getY() return y; public void draw(Graphics g) g.drawRect(x, y, width, height); 2编写一个浏览 Applet 应用程序的页面文献 SY3_2.HTML 3 将 SY2_2.java 源程序编译为 SY2_2.class 文献 4 使用浏览器或使用小程序查看器浏览SY2_2.HTML文献(即在命令提醒符下输入
34、:appletviewer SY2_2.HTML),运营.思考:程序的结构。类与对象的关系。对象创建、使用、销毁的过程。(三)使用修饰符有时需要公开一些变量和方法,有时需要严禁其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。常用的修饰符如下。Public,private,protected,package,static,final,transient,volatile1 程序功能:通过两个类StaticDemo、KY2_4 说明静态变量/方法与实例变量/方法的区别。2 编写类文献SY2_3.java,程序源代码如下:class StaticDemo static int x;int
35、y;public static int getX() return x;public static void setX(int newX) x = newX;public int getY() return y;public void setY(int newY) y = newY;public class SY2_3 public static void main(String args) System.out.println(静态变量x=+StaticDemo.getX();System.out.println(实例变量y=+StaticDemo.getY(); / 非法,编译时将犯错StaticDemo a= new Sta