java实验报告1Word文件下载.docx
《java实验报告1Word文件下载.docx》由会员分享,可在线阅读,更多相关《java实验报告1Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
![java实验报告1Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/18/15318ea1-bcb9-4fe6-b7b0-4b4730d8f1d1/15318ea1-bcb9-4fe6-b7b0-4b4730d8f1d11.gif)
6
实验日期
实验时间
2010-10-17
2010-10-24
2010-10-31
实验编号
1
分组号
实验地点
6A-413
一、实验目的和要求
1.熟悉和掌握如何声明类、创建类的实例;
2.熟悉和掌握类和成员对象的修饰符的使用;
3.掌握类的方法的定义和调用;
4.掌握类的继承;
掌握类的构造方法的使用。
5.掌握多态、接口、抽象类的定义和使用;
6.掌握基础类的使用;
7.掌握String、StringBuffer类和Number、Arrays等类的使用;
8.要求能熟练使用开发工具,设计java的类及其应用。
二、实验环境(实验设备)
硬件:
微型计算机设备一套
软件:
WindowsXP
JavaJDK+NetbeanIDE
三、实验内容
设计一个小型的图书馆管理系统。
假设在一个小型图书馆中有书籍,期刊,报纸,为此设计一个类层次结构,用来描述书籍,期刊,与报纸的相关信息,并编写一个设计类,验证所设计类的使用情况。
如:
书籍信息包括名称、书号、作者、出版社、价格。
要求如下:
1)尽可能保证程序代码的可重用性。
2)请编写实现下列功能:
1.增加;
2.更新;
3.删除;
4.查询;
5.排序;
6.打印:
可以设计一个出版物publisher的超类,书籍book,期刊journal,报纸newpaper作为其子类。
实验解答:
1.写出类publisher的变量定义
答:
publisher的变量定义如下:
protectedStringname;
protectedStringisbn;
protectedStringpublisher;
protecteddoubleprice;
protectedStringauthor;
。
2.类publisher的方法有哪些请写出来.
类Publication的方法有:
protectedPublication(){}
publicPublication(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
{=name;
=isbn;
=author;
=publisher;
=price;
}
publicStringgetName(){returnname;
publicStringgetIsbn(){returnisbn;
publicStringgetAuthor(){returnauthor;
publicStringgetPublisher(){returnpublisher;
publicdoublegetPrice(){returnprice;
publicvoidsetName(Stringname){=name;
publicvoidsetIsbn(Stringisbn){=isbn;
publicvoidsetAuthor(Stringauthor){=author;
publicvoidsetPublisher(Stringpublisher){=publisher;
publicvoidsetPrice(doubleprice){=price;
publicstaticStringreadString(Strings)throwsIOException
{
"
:
);
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
return();
}
publicstaticDoublereadDouble(Strings)throwsIOException,NumberFormatException
Stringline=();
return(line);
publicstaticintreadInt(Strings)throwsIOException,NumberFormatException
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
publicStringtoString(){return"
出版物名字:
"
+name+"
ISBN:
+isbn+"
编者:
+
author+"
出版社:
+publisher+"
单价:
+price;
3.publicvoidprint(){类book是如何定义为类publisher的子类的子类的定义格式
答:
类Book是这样定义为类Publication的子类的:
publicclassBookextendsPublication。
具体如下:
publicclassBookextendsPublication
{
publicBook(){super();
publicBook(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
{super(name,isbn,author,publisher,price);
书名:
作者:
+author+"
publicBookaddBook()throwsIOException
Bookbook=newBook(readString("
书名"
),readString("
ISBN"
),
readString("
作者"
出版社"
),readDouble("
价格"
));
returnbook;
publicvoidprint(){。
子类的定义格式为publicclass<
classname>
extends<
superclassname>
(……){……….}.
4.子类可以继承超类哪些访问特性的成员
子类可以继承超类的带有public、protected特性的成员。
5.写出类book中各方法的方法头及其功能
Book():
无参构造函数;
Book(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice):
带参构造函数,用于添加书时用输入的成员变量构造一个具体的book对象;
toString():
用于将对象转化为字符串信息,便于整个对象信息的输出;
addBook():
用于添加Book类对象成员时进行必要的提示和输入;
print():
用于输出对象的具体信息,减少每次调用函数的麻烦。
6.如果要将publisher类定义为一个抽象类,请写出其定义。
publicabstractclassPublication
protectedPublication(){}
publicabstractvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice);
publicabstractStringtoString();
publicstaticStringreadString(Strings)throwsIOException
{
publicabstractvoidprint();
7.book类中各方法的调用是通过什么进行的类中调用了publisher类的方法吗如果有,请写出调用语句。
如果Book类的对象调用其方法,就直接通过“对象名▪方法()”的方式调用;
如果是在其他类中调用公有的方法则需要强制类型转换后再通过“对象名▪方法()”的方式调用;
如果调用私有成员变量,则需要通过Book类中获取该私有变量的成员方法进行调用。
类中有调用Publication类的方法,例如:
publicBook(){super();
}。
8.N本书的相关信息是如何存放的请写出语句。
N本书的相关信息是通过Java语言中的LinkedList类创造的实例链表list实现存放的。
相关语句如:
publicBookaddBook()throwsIOException
Bookbook=newBook(readString("
readString("
returnbook;
}
staticLinkedListlist=newLinkedList();
……………
Bookbook=newBook();
按依次分别按以下格式添加出版物信息,当输入非0时继续添加,输入0时结束添加:
flag=1;
while(flag!
=0)
());
书籍信息添加成功!
是否继续"
flag=();
}。
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
1.给出这几个类的结构的UML图
2.写出接口的定义格式
接口定义格式为publicinterface<
接口名称>
{接口中的内容;
3.如果有下列语句bookb1[]=newbook[6];
它表示什么含义其中b1[1]还需要创建吗为什么
语句“bookb1[]=newbook[6];
”的含义是定义一个包含6个book对象的数组b1(或者数组引用b1)。
其中b1[1]还需要创建,因为虽然定义了b1数组,但是系统并没有给其分配内存空间,还需要根据变量的类型用new方法给其分配对应的内存空间,这样才真正的创建了b1[1]。
4.通过本次实验,你有些什么收获有什么不足
通过本实验,我进一步掌握了Java语言中类的声明及创建方法;
熟悉了类和对象的修饰符作用和访问权限;
掌握了类中的方法的定义和调用;
熟悉了类的继承、构造方法、抽象类的定义和使用方法;
掌握了多态以及Java语言中一些基础、常用类的应用方法;
熟悉了Java的开发工具。
不足的是对于类结构较多、较复杂的程序还不是很清晰;
在复杂类各层次的调用还不是很熟练;
对
设计多个类、类的联系较复杂、成员方法的调用较为繁复的程序设计思路不够清晰。
五、指导教师评语
成绩
批阅人
日期
程序代码
;
publicclassPublication
publicvoidprint(){name:
import.*;
publicclassPeriodicalextendsPublication
protectedintNo;
publicPeriodical(){super();
publicPeriodical(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,intNo)
=No;
publicvoidsetNo(intNo){=No;
publicintgetNo(){returnNo;
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,intNo)
{(name,isbn,author,publisher,price);
期刊名称:
主编:
发行社:
+price+"
第"
+No+"
期"
publicPeriodicaladdPeriodical()throwsIOException
Periodicalper=newPeriodical(readString("
期刊名称"
主编"
发行社"
单价"
),readInt("
期数"
returnper;
publicclassNewspaperextendsPublication
protectedStringdate;
publicNewspaper(){super();
publicNewspaper(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,Stringdate)
=date;
publicvoidsetDate(Stringdate){=date;
publicStringgetDate(){returndate;
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,Stringdate)