Java程序设计实验指导书1.6.1 _第1页
Java程序设计实验指导书1.6.1 _第2页
Java程序设计实验指导书1.6.1 _第3页
Java程序设计实验指导书1.6.1 _第4页
Java程序设计实验指导书1.6.1 _第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计实验指导书(v1.6.1)作者刘烁制订日期:2011年5月19日更新日期:2013年9月6日理论教材:Java程序设计标准教程第1版邱加永人民邮电出版社实验学时:36实验大纲:序号实验名称内容要求实验学时每组人数实验属性开出要求1Java运行环境通过在不同环境编译运行一个Java编程环境,认识Java程序结构。21综合必做2基本编程语句编写程序,练习使用Java控制结构,实现循环嵌套与选择嵌套等复杂结构。41综合必做3对象和类编写程序实现类和对象的操作,掌握构造函数与静态成员的使用。41综合必做4继承与多态编写程序实现类的继承、多态的实现。41综合必做5抽象类、接口与内部类编写程序实现类的继承、与接口的编写。41综合必做6异常编程实现处理异常的语句,理解处理与抛出的区别,学会自定义异常。21综合必做7流用输入输出流实现从一个文本文件中读写简单数据。21综合必做8泛型与容器编程实现set、list与map的简单应用。41综合必做9图形用户界面用图形界面工具,结合事件处理机制,实现一个可视化的计算器。61综合必做10网络编程编程实现基于UDP和TCP的通讯。21综合必做11JDBC基础使用JDBC方式执行数据库基本操作21综合必做I目录实验一、JAVA运行环境.1附录1Test1.java.11附录2Test2.java.11附录3Test3.java.11附录4Test4.java.11附录5Test5.java.11附录6Test6.java.11附录7Test7.java.12附录8Test8.java.12附录9Test9.java.12附录10Test10.java.12实验二、基本编程语句.13实验三、对象和类(一).15附录1ClassLoadTest.java.17附录2PassValueTest.java.17附录3StaticTest.java.17实验三、对象和类(包).19附录1Pclass.java.21附录2TestPackage.java.21附录3TestPackage.java.21实验三、对象和类(二).22实验四、继承与多态(一).24附录1Employee.java.26附录2TestM.java.26附录3TestM.java.27实验四、继承与多态(二).30实验五、抽象类、接口.32附录1TestAbsctract.java.34实验六、异常.35附录1NonException.java.37附录2CatchException.java.37附录3ThrowCatchException.java.37实验七、流.38附录1FileExample.java.39附录2WriteFile.java.39附录3ReadFile.java.40附录4FileTools.java.40实验八、泛型与容器.42附录1StringStack.java.44实验九、JAVA图形用户界面(一).45实验九、JAVA图形用户界面(二).54II附录1JFileChooser代码片段.57附录2JOptionPane代码片段.57附录3SimpleTree.java.57附录4SimpleTable.java.58实验十、JDBC.61附录1JdbcTest.java.62附录2perties(MSSQL2000).63附录2perties(MSSQL2005).631实验一、Java运行环境1实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个Java程序。(3)通过运行简单的Java程序,初步了解Java源程序的结构和特点。应学会在命令行和Jbuilder2005环境下的编译、运行程序的方法。2实验内容和步骤(l)检查所用的计算机系统是否已安装了JDK,并确定它所在子目录。如果使用的是Windows操作系统,可以按以下步骤进行:单击Windows桌面上的开始按钮,在菜单中选择命令提示符命令;或者单击Windows桌面上的开始按钮,在菜单中选择运行命令,在弹出的打开对话框中输入“cmd”回车,屏幕上即可出现命令提示符窗口。在命令行窗口中输入“java”回车,如果有提示,表示本机器已安装JRE,可以运行Java程序。根据提示,思考如何查看当前JRE的版本。在命令行窗口中输入“javac”回车,如果有提示,表示本机器已安装JDK并且正确配置了环境变量,可以编译、运行Java程2序。(2)在命令行环境下编译和运行Java程序(HelloWorld.java)在d盘新建文件夹myjava。打开记事本工具,从键盘输入以下程序:/*此类用于在屏幕上显示消息。*/publicclassHelloWorld/*这是一个main方法*/publicstaticvoidmain(Stringargs)/*输出此消息*/System.out.println(欢迎来到Java世界!);保存文件,点击菜单“另存为”命令,保存位置选择中建立的文件夹myjava下,文件名填写“HelloWorld.java”,保存类型一定要选“所有文件”。打开命令行窗口,将当前目录定位到保存的目录运行“javacHelloWorld.java”命令。如果编译产生错误,根据给出的错误提示修改源程序,再进行编译。重复此过程,直到编译完全正确为止。3使用资源管理器打开源文件保存的目录,观察class文件的名字。在命令行窗口运行“javaHelloWorld”命令,分析程序运行结果是否正确,如果不正确或认为输出格式不理想,可以修改程序,然后重新执行以上至步骤。(3)按照以上方法完成以下练习。用最快的速度调试附录19的多个程序直至正确运行,分别记录其错误原因、调试过程及最终运行结果。(提示:可以复制粘贴源代码)在不看任何提示的情况下,自己单独编写一个最简单的HelloWorld类。(警告:一定不要复制粘贴或照抄代码,否则没有任何意义)(4)检查所用的计算机系统是否已安装了Eclipse,并确定它所在子目录。(5)在Eclipse环境下编译和运行Java程序,在第一次上机时,按以下步骤建立和运行Java程序:先进入Eclipse环境。4点击菜单“File”“new”“project.”,在弹出的窗口中选择工程类型Javaproject,点击next按钮;填写工程名“myjava”,点击“Finish”按钮结束。567在左侧工程文件夹myjava上点右键,点击“New”“Class”;在弹出的窗口,填写类名“MyCalss”,点击“Finish”按钮结束。8910参照以下代码补充Eclipse自动生成的源文件publicclassMyClassStringname;publicMyClass(Stringname)=name;privatevoidshow()System.out.println(Hello,+name);publicstaticvoidmain(Stringargs)MyClassh=newMyClass(张三);h.show();在项目窗口中选择要运行的类MyClass类,右键后选择“runas”“JavaApplication”运行该类。观察和分析编译信息观察屏幕的变化。在输出窗口应显示程序运行结果。分析结果是否正确,如果不正确或认为输出格式不理想,可以修改程序,然后重新执行以上至步骤。113预习和复习内容教材第2章,希望大家能在实验中多思考,多给自己提问题,多设想几种可能。做实验时不要满足于验证书本知识。在以后的实验中,请读者自己设计具体的实验步骤,尽可能自己补充增加一些内容,以提高自己的实践能力。12附录1Test1.javapublicclassTest1publicstaticvoidmain(Stringargs)System.out.println(欢迎来到Java世界!)附录2Test2.javapublicclassTest2publicstaticvoidmain(Stringargs)system.out.println(“欢迎来到Java世界!”);附录3Test3.javapublicclassTest3publicstaticvoidmain(stringargs)System.out.println(欢迎来到Java世界!);附录4Test4.javapubilcclassTest4publicstaticvoidmian(Stringargs)system.out.println(欢迎来到Java世界!);附录5Test5.javapublicclassTest5publicstaticintmain(Stringargs)System.out.println(欢迎来到Java世界!);附录6Test6.javapublicclassTest6publicvoidmain(Stringargs)System.out.println(欢迎来到Java世界!);13附录7Test7.javapublicclassTest7publicstaticvoidmain()System.out.println(欢迎来到Java世界!);附录8Test8.javapublicclassTest8staticvoidmain(Stringargs)System.out.println(欢迎来到Java世界!);附录9Test9.javapublicclassTest9publicstaticvoidmain(Stringargs)System.out.println(欢迎来到Java世界!);附录10Test10.javapublicclassTest10publicstaticvoidmain(Stringbaidu)System.out.println(欢迎来到Test10世界!);classTest11publicstaticvoidmain(Stringgoogle)System.out.println(欢迎来到Test11世界!);14实验二、基本编程语句(一)1实验目的(1)掌握简单的Java程序的编写和调试方法。(2)掌握Java程序中使用最多的语句赋值语句和输入输出的使用方法。(3)掌握结构化程序的3种基本结构(顺序结构、选择结构、循环结构)在Java中的实现。2实验内容和步骤上机输入程序并调试运行程序。(1)分析以下代码会打印哪些内容,并通过程序验证自己的判断:a)publicclassElementarypublicstaticvoidmain(Stringargs)inti=1234578900+987543210;System.out.println(i);longj=1234578900+987543210;System.out.println(j);longk=1234578900+987543210L;System.out.println(k);longl=1234578900L+987543210L;System.out.println(l);b)publicclassElementary2publicstaticvoidmain(Stringargs)System.out.println(H+Bird);System.out.println(H+Bird);Strings=;charc=65;15inti=1;System.out.println(c);System.out.println(i);System.out.println(c+1);System.out.println(c+);System.out.println(c+i);System.out.println(s+c);System.out.println(s+i);System.out.println(s+c+i);System.out.println(i+c+s);s=s+i;System.out.println(s);s=s+c;System.out.println(s);c)importjavax.swing.*;publicclassOptionpublicstaticvoidmain(Stringargs)Stringname=JOptionPane.showInputDialog(whatisyourname?);Stringinput=JOptionPane.showInputDialog(howoldareyou?);intage=Integer.parseInt(input);Stringtitle=yourinfomation;Stringmessage=dear+name+,youare+age+yearsold.;JOptionPane.showConfirmDialog(null,message,title,JOptionPane.CLOSED_OPTION);(2)编程从键盘输入1个整数,计算其平方值并输出。(3)编程从键盘输入2个不同的整数,按照从小到大顺序输出。(4)编程从键盘输入一个整数,在屏幕上打印出它的阶乘。(5)编程从键盘输入10个实数到数组,分别统计正数的和、负数的和,然后输出统计结果。3预习和复习内容16教材第3章。17实验二、基本编程语句(二)1实验目的(1)掌握简单的Java程序的编写和调试方法。(2)掌握Java程序中使用最多的语句赋值语句和输入输出的使用方法。(3)掌握结构化程序的3种基本结构(顺序结构、选择结构、循环结构)在Java中的实现。(3)掌握字符串和数组的常用属性和方法。2实验内容和步骤(1)根据个人水平完成以下一组编程题并调试运行程序。基础题从键盘输入3个不同整数,按照从小到大顺序输出。(程序中不能使用循环)从键盘录入5个整数,然后由大到小排序。(必须使用循环)编程在屏幕上打印出100以内的所有素数。从键盘输入12个数存入二维数组(3*4)中,编写程序求出最大元素的值及它所在的行号和列号。见电子附件attach2-1.rar进阶题基础题最后一道题从键盘输入7个数存入二维数组中,编写程序求出最大元素18的值及它所在的行号和列号。采用二维数组输入多个学生三门课的成绩,分别求出每个学生的平均成绩和每门课的成绩。编写猜数游戏,在程序中设定一个整数,从键盘上反复由其他用户输入数据进行猜测。如果未猜中,程序提示输入过大或者过小;如果猜中,则输出猜的次数,最多允许猜5次。将以上程序中设定的整数换为随机数。(提示:查找学习java.util.Random类的用法)3预习和复习内容教材第3章。19实验三、对象和类(一)1实验目的(1)结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。(2)掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。(3)理解this关键字同static关键字的意义,掌握成员变量的具体隐藏实现。(4)理解对象同对象引用间的区别,掌握创建对象与调用对象成员的方法,以及对象作为参数与基本数据类型变量做参数的区别。2实验内容和步骤上机输入程序并调试运行程序。(1)编译并运行附件1和附件2,观察结果分析其原因。(2)编译附件3,分析结果;将“注释这行”所在的行注释,再将注释的call2方法和main方法中的“StaticTest.call2(obj);”去掉注释,再次编译,观察结果分析其原因。(3)定义一个圆类Circle,至少具有私有成员变量:radius(double型,用于保存半径)、area(double型,用于保存面积)、length(double型,用于保存周长),以及成员方法setRadius、getRadius(用于设置、获取半径)、getArea(用于获得面积)、getLength(用于获取周长)、print(打印圆对象的半径、面积、20周长信息)。a)在main方法,要求方法中通过“Circlec1=newCircle();Circlec2=newCircle(100);”分别新建半径为1和半径为100的圆对象,分别打印c1同c2的信息;b)使c2的半径等于c1的半径,使c1的半径等于原c2的半径,分别打印c1同c2的信息;(4)定义一个日期类MyDate,至少具有私有成员变量:year、month、day,以及成员方法setYear、getYear等(具体隐藏实现方法,用于设置、获取成员变量)、isRunyear(boolean型,判断当前对象保存的年是否为闰年)、print(打印日期对象的年月日信息)。a)在main方法,要求方法中通过“MyDated1=newMyDate();MyDated2=newMyDate(2009,4,1);”分别新建年月日为1999年1月1日的日期对象和年月日为2009年4月1日的日期对象,分别打印d1同d2的信息;(5)使d2的年等于d1的年,使d1的月等于原d2的月,分别打印d1同d2的信息;3预习和复习内容教材第4章。21附录1ClassLoadTest.javapackagech3;publicclassClassLoadTeststaticSystem.out.println(classloding);publicstaticvoidmain(Stringargs)附录2PassValueTest.javapackagech3;publicclassPassValueTestprivateinti=-100;publicvoidtest1(intb)b=100;publicvoidtest2(PassValueTestb)b.i=100;publicvoidtest3(PassValueTestb)b=this;publicstaticvoidmain(Stringargs)PassValueTestobj=newPassValueTest();inttemp=100;obj.test1(temp);System.out.println(temp);obj.test2(obj);System.out.println(obj.i);obj.i=100;PassValueTestnewobj=newPassValueTest();obj.test3(newobj);System.out.println(newobj.i);附录3StaticTest.javapackagech3;publicclassStaticTestpublicstaticvoidcall1()22staticmethod();nonstaticmethod();/注释这行/*publicstaticvoidcall2(StaticTesto1)o1.nonstaticmethod();StaticTesto2=newStaticTest();o2.nonstaticmethod();*/publicvoidnonstaticmethod()System.out.println(非静态方法被调用);publicstaticvoidstaticmethod()System.out.println(静态方法被调用);publicstaticvoidmain(Stringarg)StaticTestobj=newStaticTest();StaticTest.call1();StaticTest.call2(obj);23实验三、对象和类(包)1实验目的(1)理解包的意义,学会定义、编译和运行一个包内的类,熟练掌握外部包中具体类和全部类的导入方式,理解包带来的一种新的java访问控制机制。2实验内容和步骤(1)在NetBeans或Eclipse等其他集成开发环境中分别新建名为com.yourname.ch3和com.yourname.other的两个包。(2)将附件1、附件2、附件3添加到工程中,注意附件1和附件2应该放在名为“com.yourname.ch3”的包中,附件3应放在名为“com.yourname.other”的包中。分别调试3个源文件,保证都能编译成功。1在附件2、附件3的main方法中添加语句“Pclasspc=newPclass();”,分别编译它们会出现什么结果,说明什么?2将附件3中的“Pclasspc=newPclass();”改为“com.yourname.ch3.Pclasspc=newcom.yourname.ch3.Pclass();”再编译会出现什么结果,为什么?用import导入包com.yourname.ch3后,再改为“Pclasspc=newPclass();”可否通过编译?3在附件2、附件3的main方法中继续添加语句“Dclassdc=newDclass();”,分别编译它们会出现什么结果,说明什么?从附件3删除“Dclassdc=newDclass();”,保证附件3能编译通过。4在附件2、附件3的main方法中继续添加语句24“pc.method1();”,分别编译它们会出现什么结果,说明什么?5在附件2、附件3的main方法中继续添加语句:“pc.method1();pc.method2();pc.method3();pc.method4();”分别编译它们会出现什么结果说明什么(仔细分析两个编译结果的不同之处)?删除不可执行的语句确保保证附件2、3都能编译通过。6在附件2的main方法中继续添加语句:“dc.method1();dc.method2();dc.method3();dc.method4();”编译附件2会出现什么结果说明什么?3预习和复习内容教材第4章25附录1Pclass.javapackagecom.yourname.ch3;classDclass/defaultclasspublicvoidmethod1()System.out.println(publicmethodofadefalutclassinpackagep5);protectedvoidmethod2()System.out.println(protectedmethodofadefalutclassinpackagep5);voidmethod3()System.out.println(defalutmethodofadefalutclassinpackagep5);privatevoidmethod4()System.out.println(privatemethodofadefalutclassinpackagep5);publicclassPclass/publicclasspublicvoidmethod1()System.out.println(publicmethodofapublicclassinpackagep5);protectedvoidmethod2()System.out.println(protectedmethodofapublicclassinpackagep5);voidmethod3()System.out.println(defalutmethodofapublicclassinpackagep5);privatevoidmethod4()System.out.println(privatemethodofapublicclassinpackagep5);附录2TestPackage.javapackagecom.yourname.ch3;publicclassTestPackagepublicstaticvoidmain(Stringrgs)附录3TestPackage.javapackagecom.yourname.other;publicclassTestPackagepublicstaticvoidmain(Stringrgs)26实验三、对象和类(二)1实验目的(1)结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。(2)掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。(3)理解this关键字同static关键字的意义,掌握成员变量的具体隐藏实现。(4)理解对象同对象引用间的区别,掌握创建对象与调用对象成员的方法,以及对象作为参数与基本数据类型变量做参数的区别。2实验内容和步骤上机输入程序并调试运行程序。(1(定义一个圆柱体类Cylinder,至少具有私有成员变量:height(double型,用于保存高)、radius(double型,用于保存半径),以及成员方法setRadius、getRadius等、getArea(用于获得表面积)、getTj(用于获得体积)、print(打印对象的高、半径、体积、底面积信息)。在main方法,要求方法中通过“Cylindery1=newCylinder();Cylindery2=newCylinder(100,20);”分别新建高为1、底面半径为1和高为100,底面半径为20的圆柱体对象,分别打印y1同y2的信息;(2(在上一节实验中,曾经定义过一个圆面积类Circle,请在它27的基础之上,重写编写(1)中的圆柱体类Cylinder。提示,可以利用Circle类的对象表示圆柱体的底,思考这两个类之间应该是继承还是组合关系。(3(定义一个学生类Student,要求其包含name(String类型,保存姓名)、birthday(上一节定义过的MyDate类型,用以保存生日)以及成员方法set、get等、print(打印对象信息)。在main方法,要求方法中通过“Students1=newStudent();”新建姓名为default、生日为1999年1月1日的对象,再通过类似“Students2=newStudent(张三,1989,7,7);”的方法新建与你自己信息相同的学生对象,分别打印s1同s2的信息;添加新的构造函数,以便能够通过“Students3=newStudent(张三,newMyDate();Students4=newStudent(张三,newMyDate(2009,4,1);”语句创建的两个新对象,并分别打印其信息;(4(在Cylinder和Student的默认构造方法中应用this方法,使之自身不包含初始化语句,而是通过自定义构造函数初始化成员变量。(5(根据个人能力选择实现数据结构一课中学过的栈Mystack或单链表MyLinkList。(此题不写在实验报告中)3预习和复习内容教材第4章。28实验四、继承与多态(一)1实验目的(1)结合面向对象思想,熟练掌握子类的定义以及子类构造方法的定义,理解子类构造函数调用顺序。(2)掌握父类方法的重写、深入理解子类中对父类成员的访问权限。(3)理解Object的意义,掌握自定义类的toString()、equals()方法的实现。(4)理解向上转型和向下转型,以及多态的目的和意义,掌握多态的常用形式。2实验内容和步骤(3)在上一次实验中,曾经定义过圆面积类Circle、日期类MyDate,请重写它们toString和equals方法。在main方法中新建c1、c2两个默认Circle对象,d1、d2两个默认MyDate对象,分别通过equals方法比较;通过set方法修改c2和d2的成员变量值后,再分别通过equals方法比较;注意,应比较重写toString方法前后,System.out.println(c1);System.out.println(d1)的结果。(4)已知Employee类的定义(附录1),为其编写一个子类TempEmployee,其基本工资为500,计算工资办法为:工资=基本工资+奖金;如需要可以修改Employee类属性的访问修饰符。(5)调试TestM.java(附录3),掌握向上转型与向下转型;29(6)分析TestM.java(附录2),Swan重写了父类的若干方法,其中哪些重写不成功,为什么?3预习和复习内容教材第5章。30附录1Employee.javapublicclassEmployeeprivateStringname;privateStringdepartment;privatedoublebasicpay;privatedoublepay;Employee()this(default,defaultdepartment,0.0);Employee(Stringn,Stringd,doublebp)name=n;department=d;basicpay=bp;publicdoublegetPay()pay=basicpay;returnpay;publicStringtoString()returnname:+name+department:+department+pay:+getPay();附录2TestM.javaclassBirdStringname;Bird(Stringn)name=n;finalpublicvoidfly()System.out.println(name+flyasbird);publicvoidfly(intnumber)System.out.println(name+fly+number+timesasbird);protectedvoidshout()System.out.println(name+shoutasbird);privatevoidshout(intnumber)System.out.println(name+shout+number+timesasbird);31classSwanextendsBirdSwan(Stringn)super(n);p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论