java实验报告1.docx
- 文档编号:5520308
- 上传时间:2022-12-18
- 格式:DOCX
- 页数:20
- 大小:47.83KB
java实验报告1.docx
《java实验报告1.docx》由会员分享,可在线阅读,更多相关《java实验报告1.docx(20页珍藏版)》请在冰豆网上搜索。
java实验报告1
数学与计算机学院
实验报告
(2010/2011学年第1学期)
课程名称
Java程序设计
课程代码
8421991
任课教师
指导教师
学生姓名
学号
32
年级
2008级
专业
软件工程
综合成绩
实验名称
类与对象
指导教师
夏梅宸
实验类型
√验证
□综合
实验学时
6
实验日期
实验时间
2010-10-17
2010-10-24
2010-10-31
实验编号
1
分组号
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
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
Stringline=();
return(line);
}
publicstaticintreadInt(Strings)throwsIOException,NumberFormatException
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
Stringline=();
return(line);
}
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
{=name;=isbn;=author;=publisher;=price;}
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);}
publicStringtoString(){return"书名:
"+name+"ISBN:
"+isbn+"作者:
"
+author+"出版社:
"+publisher+"单价:
"+price;}
publicBookaddBook()throwsIOException
{
Bookbook=newBook(readString("书名"),readString("ISBN"),
readString("作者"),readString("出版社"),readDouble("价格"));
returnbook;
}
publicvoidprint(){。
子类的定义格式为publicclass
4.子类可以继承超类哪些访问特性的成员
答:
子类可以继承超类的带有public、protected特性的成员。
5.写出类book中各方法的方法头及其功能
答:
Book():
无参构造函数;
Book(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice):
带参构造函数,用于添加书时用输入的成员变量构造一个具体的book对象;
toString():
用于将对象转化为字符串信息,便于整个对象信息的输出;
addBook():
用于添加Book类对象成员时进行必要的提示和输入;
print():
用于输出对象的具体信息,减少每次调用函数的麻烦。
6.如果要将publisher类定义为一个抽象类,请写出其定义。
答:
publicabstractclassPublication
{
protectedStringname;
protectedStringisbn;
protectedStringpublisher;
protecteddoubleprice;
protectedStringauthor;
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;}
publicabstractvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice);
publicabstractStringtoString();
publicstaticStringreadString(Strings)throwsIOException
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
return();
}
publicstaticDoublereadDouble(Strings)throwsIOException,NumberFormatException
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
Stringline=();
return(line);
}
publicstaticintreadInt(Strings)throwsIOException,NumberFormatException
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
Stringline=();
return(line);
}
publicabstractvoidprint();
}
7.book类中各方法的调用是通过什么进行的类中调用了publisher类的方法吗如果有,请写出调用语句。
答:
如果Book类的对象调用其方法,就直接通过“对象名▪方法()”的方式调用;如果是在其他类中调用公有的方法则需要强制类型转换后再通过“对象名▪方法()”的方式调用;如果调用私有成员变量,则需要通过Book类中获取该私有变量的成员方法进行调用。
类中有调用Publication类的方法,例如:
publicBook(){super();}
publicBook(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
{super(name,isbn,author,publisher,price);}。
8.N本书的相关信息是如何存放的请写出语句。
答:
N本书的相关信息是通过Java语言中的LinkedList类创造的实例链表list实现存放的。
相关语句如:
publicBookaddBook()throwsIOException
{
Bookbook=newBook(readString("书名"),readString("ISBN"),
readString("作者"),readString("出版社"),readDouble("价格"));
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
{
protectedStringname;
protectedStringisbn;
protectedStringpublisher;
protecteddoubleprice;
protectedStringauthor;
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
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
Stringline=();
return(line);
}
publicstaticintreadInt(Strings)throwsIOException,NumberFormatException
{
":
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader);
Stringline=();
return(line);
}
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
{=name;=isbn;=author;=publisher;=price;}
publicStringtoString(){return"出版物名字:
"+name+"ISBN:
"+isbn+"编者:
"+
author+"出版社:
"+publisher+"单价:
"+price;}
publicvoidprint(){name:
import.*;
publicclassBookextendsPublication
{
publicBook(){super();}
publicBook(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice)
{super(name,isbn,author,publisher,price);}
publicStringtoString(){return"书名:
"+name+"ISBN:
"+isbn+"作者:
"
+author+"出版社:
"+publisher+"单价:
"+price;}
publicBookaddBook()throwsIOException
{
Bookbook=newBook(readString("书名"),readString("ISBN"),
readString("作者"),readString("出版社"),readDouble("价格"));
returnbook;
}
publicvoidprint(){name:
import.*;
publicclassPeriodicalextendsPublication
{
protectedintNo;
publicPeriodical(){super();}
publicPeriodical(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,intNo)
{super(name,isbn,author,publisher,price);=No;}
publicvoidsetNo(intNo){=No;}
publicintgetNo(){returnNo;}
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,intNo)
{(name,isbn,author,publisher,price);=No;}
publicStringtoString(){return"期刊名称:
"+name+"ISBN:
"+isbn+"主编:
"+
author+"发行社:
"+publisher+"单价:
"+price+"第"+No+"期";}
publicPeriodicaladdPeriodical()throwsIOException
{
Periodicalper=newPeriodical(readString("期刊名称"),readString("ISBN"),
readString("主编"),readString("发行社"),readDouble("单价"),readInt("期数"));
returnper;
}
publicvoidprint(){name:
import.*;
publicclassNewspaperextendsPublication
{
protectedStringdate;
publicNewspaper(){super();}
publicNewspaper(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,Stringdate)
{super(name,isbn,author,publisher,price);=date;}
publicvoidsetDate(Stringdate){=date;}
publicStringgetDate(){returndate;}
publicvoidsetInfo(Stringname,Stringisbn,Stringauthor,Stringpublisher,doubleprice,Stringdate)
{(name,isbn,author,publisher,price);=date;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)