1、Java程序设计实习指导书第一章 Java语言实验机器与环境1.1计算机的硬件配置PC系列微机,包括286、386、486、奔腾及各种兼容机,要求内存为64M以上,一个硬盘驱动器和一个软盘驱动器。80列字符监视器。配备鼠标器。1.2计算机的软件配置DOS6.22或Windows xp、Windows 2000。安装软件jdk-1_5_0-windows-i586.exe1.3 JDK1.5.0的安装和设置1.3.1下载jdk-1_5_0-windows-i586.exeJDK开发工具包可以免费下载。下载网址下载如下文件:jdk-1_5_0-windows-i586.exe。1.3.2安装jdk
2、-1_5_0-windows-i586.exe由于目前大多数用户使用的是Window xp 操作系统,所以我们以在Window xp操作系统上安装jdk-1_5_0-windows-i586.exe为例,说明安装jdk-1_5_0的过程。jdk-1_5_0-windows-i586.exe是一个自解压文件,双击它就可以解压缩,同时进行安装工作,双击jdk-1_5_0-windows-i586.exe,文件会自动解压缩,如图2.1所示。图1.1 jdk-1_5_0-windows-i586.exe的解压过程解压缩工作完成之后,会出现JDK1.5.0的许可协议,如图1.2所示图1.2 选择许可协议
3、界面 点击“next”按钮,出现如图1.3所示对话框,用户可选择要安装的组件及选择安装目录。 点击“change”,可改变安装目录。图1.3 组件的选择选好后,点击“next”按钮,开始安装,如图1.4所示。图1.4 安装进度界面运行环境设置及安装,如图1.5所示。图1.5 安装过程界面单击“Next”按钮,出现如图1.6所示对话框,选择浏览器,选中后,单击“Next”按钮继续安装。图1.6 选择浏览器界面最后出现如图1.7所示界面,单击“finish”按钮结束安装。图1.7 安装结束界面1.4 配置环境变量1方法一平台为 Windows 2000 时,需要修改系统根目录下的autoexec.
4、bat文件。使用记事本或其它文本编辑器打开文件autuexec.bat,在该文件的最后增加如下两行SET PATH=%CLASSPATH%;C:Program FilesJavajdk1.5.0_04jrelibrt.jarSET PATH=%PATH%;C:Program FilesJavajdk1.5.0_04bin;其中,环境变量path和classpath分别指定了JDK命令搜索路径和Java类路径。在这里我们假设JDK安装在C:Program FilesJavajdk1.5.0_04目录下,JDK的所有命令都放在C:Program FilesJavajdk1.5.0_04bin目录下
5、。设置环境变量path的作用是使DOS操作系统可以找到JDK命令。设置环境变量classpath的作用是告诉Java类装载器到哪里去寻找第三方提供的类和用户定义的类。JVM和其它JDK工具通过依次搜索平台库、库扩展和类路径来查找类。如果用户在安装jdk1.5.0时,选择了另外的JDK安装路径,则环境变量path和classpath要作相应的调整。2方法二右单击“我的电脑”,选择“属性”,出现如图1.7对话框,选择“高级”选项卡,选择其中的“环境变量”,出现如图1.8对话框,在系统变量中建立或设置环境变量。在“变量名”对话框中输入环境变量名,在“变量值”对话框中输入相关值得路径。设置过程如图1.
6、9、图1.10所示,设置完成后,单击“确定”完成设置。图1.7 系统属性对话框图1.8 设置环境变量图1.9 新建环境变量path图1.10新建环境变量classpath1.5 测试安装环境变量设置完成后,重新启动计算机,在DOS窗口下,敲入javac并回车后,如果出现Javac的用法参数提示信息,则安装正确。否则要检查环境变量设置是否正确。1.6 使用Eclipse IDE编译与运行程序使用Eclipse IDE软件可以很方便地进行编译和运行程序的工作,但如果程序有交互的功能,还需要安装其它插件。1下载eclipse-SDK-3.2-win32.zip到你的计算机将文件eclipse-SDK
7、-3.2-win32.zip拷贝到C:盘根目录下,然后右单击该文件将其解压到当前文件夹下,如图1.11所示。解压后的目录结构如图1.12所示。图1.11 解压操作界面图1.12 解压后的目录结构图2测试安装双击C:eclipseeclipse.exe文件,可看到如图1.13所示启动界面。图1.13 eclipse启动界面 改变工作目录如图1.14所示。图1.14 选择工作区界面 选择好工作空间以后,单击“确定”按钮,如果能看到如图1.15所示界面,则安装成功。 图1.15 选择工作区界面第二章 JDK开发工具简介及Java程序开发步骤在jdk1.5.0的bin目录下,存放着Java 2提供的一
8、些可执行程序,为我们开发和测试Java程序提供了工具。在我们的学习中,常用的JDK开发工具有如下几种:(1) javac.exe:Java语言的编译器。(2) java.exe:Java程序执行引擎。(3) appletviewer:小应用程序浏览器。在使用Eclipse之前,必须熟练掌握这些工具的用法。2.1编辑运行Java程序 单击“文件 新建 项目 ”,如图2.1所示。图2.1 新建项目界面选择了项目后出现如下界面,选择“Java 项目”后单击“下一步”。图2.2 新建Java项目界面在图2.3 所示界面中,在“项目名”一栏中,填入“Simple Java Program”其它使用缺省值
9、。单击下一步,出现如图2.4所示界面。 图2.3 新建Java项目界面 图2.4 新建Java项目界面在如图2.4所示界面中单击“库”选项卡,出现如图2.5所示界面,确保JRE设置没问题。单击“完成”按钮。图2.5 新建Java项目界面2.2在Eclipse中运行java程序在包资源管理器中右单击“Simple Java Program”项目如图2.6所示,点击“新建 类 ”,弹出如图2.7所示界面。图2.6新建Java类界面图2.7新建Java类界面在图2.7所示界面中在“名称”一栏中填写“HelloChina”,其它设置如图2.7所示。单击“完成”。在包资源管理器中查看源程序如图2.8及图
10、2.9所示。图2.8 包资源管理器中结构图图2.9 代码视图在包资源管理器中右单击“HelloChina.java”,如图2.10所示点击“运行方式 Java应用程序 ”,运行结果如图2.11所示。图2.10 运行界面图2.11 运行界面第三章 实验内容实验一 熟悉Java的编程环境1. 实验目的(1) 掌握使用JDK开发Java程序的步骤。(2) 掌握Java程序的基本语法;熟练运用java的三个工具编译或运行程序。2. 实验内容实验题1 按下面步骤进行实验(1)开机后,创建目录d:java。把这个目录作为我们的工作目录。我们的Java源程序、编译后的字节码文件和用来运行Java Apple
11、t的html文件都放在这个目录中。(2)启动EditPlus或其它编辑软件编写源代码. public class ArithmaticTest public static void main( String args ) int a=9; int b= - a; int i=0; int j=i+; int k=+j; System.out.println(a = +a); System.out.println(b = +b); System.out.println(i = +i); System.out.println(j = +j); System.out.println(k = +k);
12、 如果你使用的是EditPlus,那么可以看到如图3.1的编辑结果:图3.1 EditPlus编辑器界面(3)保存程序。注意:保存源程序时,程序名要与主类名一致。所以用ArithmaticTest.java作为本程序的文件名。如果用记事本编写程序,因记事本默认的扩展名是.txt,所以要给文件名加引号后保存。把该文件保存到目录D:java中。(4) 编译程序图3.2 application程序的编译界面如果编译成功,则在:java目录中生成字节码文件ArithmaticTest.class。如果不成功,则显示错误信息,用户可修改错误,(5)运行程序图3.3 application程序的运行界面(
13、6)观察程序的运行结果实验题2 用ECLIPSE开发实现HelloWorld!程序。实验题3 求解一元二次多项式的根: 将不同的a,b,c值硬编码到程序中,测试你的程序,观察输出结果。如: a=1,b=2,c=1 a=0,b=1,c=1 a=1,b=1,c=1 实验题4 排序和查找给定一个数组: int a=28,39,49,78,23; / 你可以用任意的测试数据请对数组中的元素进行排序。给定一个数字 x=49,请在排序后的数组中查找该元素。要求: * 最好使用折半查找 * 排序和查找自己写函数实现,不要使用标准API。实验二 面向对象编程(1)1实验目的掌握Java程序面向对象编程的基本架
14、构,会运用面向对象的思想编写Java程序。2实验内容实验题1 阅读如下程序,完成思考题。class CCircle double pi; double radius; double getRadius() return radius; void setCircle(double r, double p) pi=p; radius=r; public class Ex2_1 public static void main(String args) CCircle cir1=new CCircle(); cir1.setCircle(2.0,3.1416); System.out.println(
15、radius=+cir1.getRadius(); 基本要求 运行程序并观察运行结果。思考问题 试述程序中主要语句的作用。实验题2 定义一个类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr()。编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。基本要求 编写完整程序。思考问题 试述程序中各个方法的作用。实验三 面向对象编程(2
16、)1实验目的(1)掌握Java中的继承机制及包(package)、接口(interface)等的设计方法。(2)掌握static、this、super等关键字的使用。2实验内容实验题1 有两个类:MobileManagement和Mobile,分别描述如图3.7所示两部手机名称及价格,类MobileManagement在包cn.edu.nwsuaf.jp.p3中,而Mobile在包cn.edu.nwsuaf.jp.p3.data中。它们代码如下。运行MobileManagement.java,你应该看到如图3.8所示结果。基本要求 在空白处填写相关代码并修改上面程序,使程序能够显示两部手机的价
17、格和数量,运行结果如图3.9 所示。 E365, 1780 RMB M330, 1450 RMB图3.4 手机及价格图图3.5 运行结果图程序Mobile.java源代码: public class Mobile /* Holds the name of the mobile. */ private String name; /* Holds the price of the mobile. */ private float price; /* Creates a new mobile object. */ public Mobile(String name, float price) thi
18、s.name = name; this.price = price; /* Gets the name of the mobile. */ public String getName() return name; /* Gets the price of the mobile. */ public float getPrice() return price; 程序MobileManagement.java源代码: import javax.swing.JOptionPane; public class MobileManagement /* Defines the entry point of
19、 the application. */ public static void main(String args) / Creates two mobile phone objects. Mobile mobile1 = new Mobile(E365, 1780); Mobile mobile2 = new Mobile(M330, 1450); / Displays the two mobile phones in a dialog box.JOptionPane.showMessageDialog(null, Mobile phones:nn+mobile1.getName()+n+mo
20、bile2.getName(); 图3.6 运行结果图实验题2 有四个类,主类Store在包cn.edu.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包cn.edu.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类,Product和Store代码如下:Store.java源代码:package cn.edu.nwsuaf.jp.p4;import java.util.Arrays;import javax.swing.JOptionPane;import cn.edu.nwsuaf.jp.p4.data.Mobile
21、;import cn.edu.nwsuaf.jp.p4.data.Mp3Player;import cn.edu.nwsuaf.jp.p4.data.Product;public class Store /* Defines the entry point of the application. */public static void main(String args) / Creates two mobile phone objects. Mobile mobile1 = new Mobile(China Mobile, E365,1780); Mobile mobile2 = new M
22、obile(China Mobile, M330,1450); Mp3Player player1 = new Mp3Player(Meizo X3, 256, 399); Mp3Player player2 = new Mp3Player(Meizo E5, 512, 580); Mp3Player player3 = new Mp3Player(Xlive XM MP3 Play, 256, 930); Product products=mobile1,mobile2,player1,player2, player3; Arrays.sort(products); String text
23、= ; for(int index = 0; index products.length; +index) text += productsindex.toString()+n; / Displays the two mobile phones in a dialog box. JOptionPane.showMessageDialog(null,The products are:nn+text+nThere are +Product.getCount() + products.);Product.java源代码:package cn.edu.nwsuaf.jp.p4.data;public
24、abstract class Product implements Comparable /* Holds the name of the product. */ protected String name; /* Holds the price of the product. */ protected float price; /* Holds the number of products. */ protected static int count; /* Create a new product object. */ protected Product(String name, floa
25、t price) this.name = name; this.price = price; +count; /* Gets the name of the product. */ public String getName() return name; /* Gets the price of the product. */ public float getPrice() return price; /* Gets the number of products. */ public static int getCount() return count; /* Compares this pr
26、oduct with the given product. */ public int compareTo(Product product) return new Float(product.getPrice().compareTo(price); 基本要求 设计类Mobile和类MP3Player,使它们和类Product、Store组成一个完整的程序,且运行结果如图3.10所示。图3.7 运行结果图实验题2 用LIST存放对象。利用面向对象的思想,创建以下类:Person类,包含Person的姓名和身份证号码。Student类,首先是一个Person,除此之外,包含学生的语文、数学、英文课
27、的成绩。Teacher类,首先是一个Person,除此之外,包含教师的工资。 请创建 姓名 张三 身份证号 12310000的Person对象。 请创建 姓名 李四 身份证号 12320000 语文: 89 数学: 93 英文: 94的Student对象。 请创建 姓名 王五 身份证号 12330000 工资: 3000的Teacher对象。 将这些对象存放在List中,并打印出List中存放的内容。实验题3 用SET存放对象。利用面向对象的思想,创建以下类:Person类,包含Person的姓名和身份证号码。 请创建三个对象,放在HashSet中: 姓名 张三 身份证号 12310000 姓
28、名 李四 身份证号 12320000 姓名 王五 身份证号 12330000 再创建对象: 姓名 张三 身份证号 12310000能放入到刚才创建的HashSet中么? 把集合中的元素打印出来。 用TreeSet存放上面三个人,要求按照身份证号排序,打印出来。能够把上面步骤中创建的对象放到这个TreeSet中么。基本要求 使用Java API中的Set相关的技术来完成实验任务。技术提示 使用HashSet要覆盖hashCode()方法, equals()方法 打印集合内的元素,要覆盖toString()方法。 使用TreeSet要实现Comparable接口。 实验题4 用Map存放对象参见E
29、xp3.4.TXT,里面存放了30个同学的学号和姓名。给定学生的学号,问该学生在不在名单中,如果在,给出姓名。基本要求 使用Java API中的Map相关的技术来完成实验任务。技术提示 使用Java API中的Set相关的技术来完成实验任务。 使用文件操作,读出文件中的学号和姓名; 学号作为KEY,姓名作为VALUE,放到MAP中; 从命令行中输入的学号,作为KEY,在MAP中进行检索。实验四 多线程异常处理1实验目的(1) 掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象;(2) 掌握Java多线程的概念和实现方法;(3) 掌握Java多线程的同步问题;2实验内容实验题1 假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱到入。试编写一个程序,模拟实际作业。程序如下:class CBank private static int sum=0; public static void add(int n) int tmp=sum
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1