Java大学实用教程(第二版)实验
- 格式:pdf
- 大小:568.62 KB
- 文档页数:18
实验1 Java运行环境及简单应用程序开发一、实验目的(1)可以安装并配置Java运行环境。
(2)掌握Java中path和classpath的属性作用。
(3)可以编写一个简单的Java应用程序。
(4)掌握Java应用程序的开发流程。
二、实验内容及步骤1.安装并配置运行环境(1)任务安装JA V A SE,检查和设置环境变量path。
(2)步骤第一步:安装JA V A SE,安装后在安装目录下应有jdk和jre文件夹。
第二步:设置环境变量path,步骤参见教材P7。
第三步:检查环境变量path,可在命令提示符下使用命令javac –version 检查path是否配置好及jdk的版本。
第四步:如运行或编译程序时出错,可配置classpath,步骤参见教材P7。
(3)问题:程序中的主类如果不用public修饰,编译能通过吗?程序中的主类如果不用public修饰,能正确运行吗?编译器怎样提示丢失大括号的错误?编译器怎样提示语句丢失分号的错误?编译器怎样提示将System写成system这一错误?编译器怎样提示将String写成string这一错误?(4)实验报告将上述思考题写在实验报告上。
2. 编写简单的Java应用程序(1)任务任务一:在屏幕上输出“我喜欢学习java”。
任务二:在屏幕上输出出以下信息:******************************** java程序设计*******************************(2)步骤第一步:使用记事本或EDIT编写源程序,源程序内容参见教材P9例1-1。
第二步:保存并为源程序命名。
保存时若使用记事本,保存类型请选择“所有类型”,命名规则参见教材P9,保存类型为.java。
第三步:打开命令提示符,进入源程序保存的文件夹下,使用编译器对其进行编译:如javac Hello.java。
第四步:如编译时无任何提示,说明源程序无错误,可对生成的class文件进行解释并执行,如java Hello,此步省略.class。
第一章问答题1.答:开发Java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况;致力于开发一种可移植的、跨平台的语言,该语言能生成正确运行于各种操作系统、各种CPU芯片上的代码主要贡献者是James Gosling。
2.答:不正确。
Java提供的编译器把源程序编译成称为“字节码”的一个中间代码。
字节码是很接近机器码的二进制文件,不能被机器直接识别。
3.答:Java应用程序的主类必须含有public static void main(String args[])方法,作为应用程序运行的入口和起始点。
4.答:不正确。
可以没有public类。
Java程序的源文件中如果有多个类,那么只能有一个类是public类。
如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名为.java。
如果源文件没有public类,那么源文件的名字只要与某个类的名字相同,并且拓展名为.java就可以了。
5.答:正确。
Java Applet源文件的主类必须是public的。
按照源文件的命名规定,Java Applet源文件的名字一定与主类的名字相同。
6.答:如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,拓展名为.java;如果源文件没有public类,那么源文件的名字只要与某个类的名字相同,并且拓展名为.java就可以了。
7.答:源文件生成的字节码在运行时只将程序需要的字节码加载到内存中。
8.答:开发一个Java Applet程序需经过三个步骤:编写源文件、编译源文件生成字节码、通过浏览器加载运行字节码。
1)编写源文件。
一个Java Applet源文件也是由若干个类组成的,一个Java Applet源文件不再需要main方法,但必须有且只有一个类扩展了Applet类,即它是Applet类的子类(Applet类是系统提供的类),我们把这个类称作Java Applet源文件的主类。
上机实践1 初识JA V A (3)实验1一个简单的应用程序 (3)实验2一个简单的J A V A A PPLET程序 (3)实验3联合编译 (4)上机实践2 基本数据类型与控制语句 (5)实验1输出希腊字母表 (5)实验2回文数 (6)实验3猜数字游戏 (8)上机实践3 类与对象 (9)实验1三角形、梯形和圆形的类封装 (9)实验2实例成员与类成员 (12)实验3使用PACKAGE语句与IMPORT语句 (14)上机实践4 继承与接口 (16)实验1继承 (16)实验2上转型对象 (19)实验3接口回调 (21)上机实践5 字符串、时间与数字 (23)实验1S TRING类的常用方法 (23)实验2比较日期的大小 (24)实验3处理大整数 (25)上机实践6 组件及事件处理 (26)实验1算术测试 (26)实验2信号灯 (29)实验3布局与日历 (31)上机实践7 组件及事件处理2 (35)实验1方程求根 (35)实验2字体对话框 (38)实验3英语单词拼写训练 (41)上机实践8 多线程 (45)实验1汉字打字练习 (45)实验2旋转的行星 (47)实验3双线程接力 (51)上机实践9 输入输出流 (54)实验1学读汉字 (54)实验2统计英文单词字 (57)实验2读取Z IP文件 (61)上机实践10 JAV A 中的网络编程 (62)实验1读取服务器端文件 (62)实验2使用套接字读取服务器端对象 (64)实验3基于UDP的图像传输 (67)上机实践11 数据结构 (71)实验1扫雷小游戏 (71)实验2排序与查找 (76)实验3使用T REE S ET排序 (77)上机实践12 JAV A SWING (79)实验1JL AYERED P ANE分层窗格 (79)实验2使用表格显示日历 (80)实验3多文档界面(MDI) (83)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。
Hello.javaclass A{void f(){System.out.println("I am A");}}class B{}public class Hello{public static void main (String args[ ]) {System.out.println("你好,很高兴学习Java");A a=new A();a.f();}}Tom.javapublic class Tom{int leg;String head;void cry(String s){System.out.println(s);}}class Example{public static void main(String args[]){ Tom cat;cat=new Tom();cat.leg=4;cat.head="猫头";System.out.println("腿:"+cat.leg+"条"); System.out.println("头:"+cat.head);cat.cry("我今天要和Jerry拼了");}}Ch10importjavax.swing.*;importjava.awt.event.InputEvent;importjava.awt.event.KeyEvent;public class Example10_1{public static void main(String args[]){FirstWindow win=new FirstWindow("一个简单的窗口");}}classFirstWindow extends JFrame{JMenuBarmenubar;JMenu menu;JMenuItem item1,item2;FirstWindow(String s){setTitle(s);setSize(160,170);setLocation(120,120);setVisible(true);menubar=new JMenuBar();menu=new JMenu("文件");item1=new JMenuItem("打开",new ImageIcon("open.gif"));item2=new JMenuItem("保存",new ImageIcon("save.gif"));item1.setAccelerator(KeyStroke.getKeyStroke('O'));item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_M ASK));menu.add(item1);menu.addSeparator();menu.add(item2);menubar.add(menu);setJMenuBar(menubar);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}}Java大学实用教程(第2版)[程序源代码].zip完全版:。