Java程序设计实验报告 哈工大汇总.docx
- 文档编号:657307
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:12
- 大小:21.95KB
Java程序设计实验报告 哈工大汇总.docx
《Java程序设计实验报告 哈工大汇总.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告 哈工大汇总.docx(12页珍藏版)》请在冰豆网上搜索。
Java程序设计实验报告哈工大汇总
Java语言基础
实验指导、报告书
(2012-2013年秋季学期使用)
班级:
____________________
姓名:
____________________
计算机科学与技术学院
实验一Java编程开发环境
一、实验学时:
1学时
二、实验目的:
1.学习从网络下载JDK开发工具与帮助文档。
2.学习安装JDK开发工具及其文档。
3.掌握JavaApplication程序的开发过程并编写一个JavaApplication程序。
4.学习使用JDK的帮助文档。
三、必须学习和掌握的知识点:
1.掌握使用JDK开发Java程序的步骤。
2.掌握Java程序的基本语法。
四、实验内容:
1.创建一个“Hello,World”程序,该程序只要输出这句话即可。
你所编写的类里只需一个方法(“main”方法会在程序启动时被执行)。
记住要把它设为static形式,并指定参数列表——即使根本不会用到这个列表。
用javac进行编译,再用java运行它。
。
2.观察程序的运行结果
3.打印源程序清单
4.改变工作目录,观察编译程序和运行程序是否可以正常工作,思考为什么,如何做?
实验二Java程序流程控制
一、实验学时:
1学时
二、实验目的:
1.Java语言基本元素
2.Java数据类型
3.Java语言结构
4.Java控制语句
5.Java类定义规范
三、必须学习和掌握的知识点:
1.分支语句:
if-else,switch
2.循环语句:
while,do-while,for
3.与程序转移有关的其它语句:
4.break,continue,return
四、实验内容:
1.写一个接收两个字符串参数的方法,用各种布尔值的比较关系来比较这两个字符串,然后把结果打印出来。
做==和!
=比较的同时,用equals()作测试。
在main()里面用几个不同的字符串对象调用这个方法。
2.写一个会随机生成25个整型值的程序。
对每一个值,用if-else语句判断其是大于、小于,还是等于下一个随机生成的值。
3.写一个打印从1到100的值的程序。
实验三对象的初始化与清除
一、实验学时:
2学时
二、实验目的:
1.掌握Java程序面向对象编程的基本架构
2.掌握子类的对象就是父类的对象的规律
3.熟悉和掌握一维和二维数组的使用
三、必须学习和掌握的知识点:
1.掌握类的创建(属性与方法的定义和声明)
2.掌握构造函数的定义和声明(重载的构造函数:
默认构造函数与参数)
3.使用get../set..字段读写
4.初始化(定义初始化和静态初始化)
5.数组和数组类Arrays的使用
四、实验内容
1.创建一个名为Dog的类,具有重载的bark()方法。
此方法应根据不同的基本数据类型进行重载,并根据被调用的版本,打印出不同类型的狗吠(barking)、咆哮(howling)等信息。
编写main()来调用所有不同版本的方法。
2.编写名为Tank的类,此类的状态可以是满的或空的。
其“终结条件”是:
对象被清除时必须处于空状态。
请编写finalize()以检验终结条件是否成立。
在main()中测试Tank可能发生的几种使用方式。
3.编写一个方法,能够产生二维双精度型数组并加以初始化。
数组的容量由方法的形式参数决定,其初值必须落在另外两个形式参数所指定的区间之内。
编写第二个方法,打印出第一个方法所产生的数组。
在main()中通过产生不同容量的数组并打印其内容来测试这两个方法
实验四隐藏具体实现
一、实验学时:
2学时
二、实验目的:
1.类是如何对它的成员进行访问权限控制的
2.掌握类是如何被打包到一个程序库中的
三、必须学习和掌握的知识点:
1.访问权限控制
四、实验内容
1.创建一个带有public,private,protected,和包访问权限域以及方法成员的类。
创建该类的一个对象,看看在你试图调用所有类成员时,会得到什么类型的编译信息。
请注意,处于同一个目录中的所有类都是缺省包的一部分。
2.将local目录加入到CLASSPATH中,然后在local目录下编写以下文件:
packagelocal;
classPackagedClass{
publicPackagedClass(){
System.out.println("Creatingapackagedclass");
}
}
然后另一个目录中创建下列文件:
//foreign:
Foreign.java
packageforeign;
importlocal.*;
publicclassForeign{
publicstaticvoidmain(String[]args){
PackagedClasspc=newPackagedClass();
}
}
解释一下为什么编译器会产生错误。
如果将Foreign类置于local包之中的话,会有所改变吗?
实验五复用类
一、实验学时:
2学时
二、实验目的:
1.组合
2.继承
3.掌握继承(属性和方法的继承)的规律
4.掌握构造函数继承的规律
三、重点:
1.组合与继承之间选择
2.名称屏蔽(Namehiding)
3.向上转型(upcasting)
4.final
四、实验内容
1.创建一个Root类,令其含有名为Component1、Component2、Component3的类各一个实例(这些也由你写)。
从Root中派生一个类stem,也含有上述各“组成部分”。
所有的类都应带有可打印出类的相关信息的缺省构造器。
2.
检查包括继承在内的初始化全过程,是很有益的。
请追踪并解释下例的执行结果。
classInsect{
privateinti=9;
protectedintj;
Insect(){
System.out.println("i="+i+",j="+j);
j=39;
}
privatestaticintx1=
print("staticInsect.x1initialized");
staticintprint(Strings){
System.out.println(s);
return47;
}
}
publicclassBeetleextendsInsect{
privateintk=print("Beetle.kinitialized");
publicBeetle(){
System.out.println("k="+k);
System.out.println("j="+j);
}
privatestaticintx2=
print("staticBeetle.x2initialized");
publicstaticvoidmain(String[]args){
System.out.println("Beetleconstructor");
Beetleb=newBeetle();
}
}
实验六多态
一、实验学时:
2学时
二、实验目的:
1.多态polymorphism
2.动态绑定dynamicbinding
三、重点:
1.向下转型与运行期类型标识
2.构造器内部的多态方法的行为
3.运行期类型识别
四、实验内容
1.创建一个Rodent(啮齿动物):
Mouse(老鼠),Gerbil(鼹鼠),Hamster(大颊鼠)这样的继承层次结构。
在基类中,提供对所有的Rodent都通用的方法,在基类中,根据特定的Rodent类型重载这些方法,以便执行不同的行为。
创建一个Robent数组,填充不同的Rodent类型,然后调用基类方法,观察发生什么情况。
2.
修改以上练习中的Rodent,使其成为一个抽象类。
只要有可能,就将Rodent的方法声明为抽象方法。
3.修改以上练习,使其能够演示基类和导出类的初始化顺序。
然后向基类和导出类中添加成员对象,并显示在构建期间初始化发生的顺序。
4.创建一个不包含任何方法的抽象类,从它那里导出出一个类,并添加一个方法。
创建一个静态方法,可以接受一个指向基类的引用,将其向下转型到导出类,然后再调用该静态方法。
在main()方法中,证实它的可行性。
然后,将基类加上abstract声明,这样就不再需要进行向下转型。
实验七接口与内部类
一、实验学时:
2学时
二、实验目的:
1.掌握接口的使用规律
2.掌握内部类的使用规律
三、重点:
1.嵌套接口
2.在方法和作用域内的内部类
3.匿名内部类
4.从多层嵌套类中访问外部
5.闭包与回调
四、实验内容
1.证明一个接口的属性在缺省情况下是static和final的。
2.创建一个接口U,包含三个方法。
创建第一个类A,它包含一个方法,在此方法中写一个匿名内部类,生成U的引用。
创建第二个类B,它包含U的数组。
B应该有几个方法,第一个方法可以接受一个U的引用并存储到数组中;第二方法将数组中的引用设为null;第三个方法遍历此数组。
在U中调用这些方法,在其main()中创建一组A的对象,和单独一个B的对象。
用那些A类对象所产生的U类型的引用填满B对象的数组。
使用B回调所有A的对象。
再从B中移除某些U的引用。
实验八异常和错误处理
一、实验学时:
1学时
二、实验目的:
1.熟悉和掌握java中对异常的处理机制
2.异常的抛出和捕捉
三、重点:
1.java的异常处理机制
四、实验内容
1.建立一个三层的异常继承体系,然后创建基类A,它的一个方法能抛出异常体系的基类异常。
用B继承A,并且重载这个方法,让它抛出第二层的异常。
让C继承B,再次重载这个方法,让它抛出第三层的异常。
在main()里面创建一个C类型的对象,把它向上转型为A,然后调用这个方法。
实验九JavaI/O系统
一、实验学时:
1学时
二、实验目的:
1.熟悉和掌握流式输入输出的基本原理
2.标准输入输出操作接口
三、重点:
1.InputStreamReader、OutputStreamReader的使用
2.PrintWriter类的使用
四、实验内容
1.创建一个叫做SortedDirList的类,具有一个可以接受文件路径信息,并能构建该路径下所有文件的排序目录列表的构造器。
创建两个重载的list(),根据参数产生整个列表或者列表子集。
添加size()方法,能够接受文件名并产生该文件的大小。
实验十多线程编程
一、实验学时:
2学时
二、实验目的:
1.熟悉和理解线程的概念、线程的生命周期
2.熟悉和掌握多线程的实现方法:
继承Thread类与使用Runnable接口
三、重点:
1.线程的生命周期
2.使用Runnable接口编写多线程程序
四、实验内容
1.写一个“忙等待”的例子。
一个线程休眠一段时间然后把一个标志设为真。
第二个线程在一个while循环中观察这个标志(这就是“忙等待”),当标志变为真的时候,把这个标志设置为假,并向控制台报告这个变化。
注意程序在“忙等待”里花费的时间,然后重写这个程序,这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计实验报告 哈工大汇总 Java 程序设计 实验 报告 哈工大 汇总