Java实验三实验报告.docx
《Java实验三实验报告.docx》由会员分享,可在线阅读,更多相关《Java实验三实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
Java实验三实验报告
实验报告
课程名称面向对象课程设计
实验项目名称类的继承
班级与班级代码13计算机科学与技术1班
实验室名称(或课室)SS1205
专业计算机科学与技术
任课教师尹华
学号:
12251102120
姓名:
林淑英
实验日期:
2014年4月28日
广东财经大学教务处制
姓名林淑英实验报告成绩
评语:
项目
评价
分数
实验报告完整性
全部完成实验内容
A
部分完成实验内容
B
实验报告正确性
实验内容基本正确
A
实验内容存在错误
B
实验报告格式
格式符合要求
A
格式基本符合要求
B
格式不符合要求
C
实验报告提交时间
提交准时
A
推迟提交
B
指导教师(签名)
年月日
说明:
指导教师评分后,实验报告交院(系)办公室保存。
实验三类的继承、多态、接口、访问控制符与修饰符
实验目的:
通过编程练习掌握类的继承,多态,接口,访问控制符与修饰符的使用方法。
实验原理:
类的继承,接口。
实验设备:
计算机,Eclipse。
实验题目:
1.设计一个Person类,其成员变量有:
姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:
学号(id)、班名(cname)、成绩(score),类Student中要有一个方法display(),用来显示一个学生的信息。
编写一个测试程序,创建一个Student类的对象,要求name和id是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。
2.定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。
编写测试程序,创建B的对象,输出英文字母和中文字符串。
3.定义一个坐标类Pointer,成员变量包括x和y;成员方法有:
(1)构造方法
(2)setX、setY、getX、getY、display方法
(3)类方法distance用来计算两点之间的距离
编写测试程序,创建Pointer的两个对象并计算两个点坐标的距离。
4.定义一个抽象类Area、两个Area的子类RectArea和RoundArea,以及一个实现类ImpleArea。
要求如下
(1)抽象类Area类中只包含一个抽象方法doublearea()。
(2)子类RoundArea类通过覆盖父类中的抽象方法area()来求圆的面积,另一个子类RectArea类通过覆盖父类中的抽象方法area()求长方形的面积。
(3)圆的半径和长方形的边分别定义为子类RoundArea类和RectArea类的域,都为double娄型。
(4)ImpleArea类中创建对象,接收键盘输入,输入内容分别为圆的半径和长方形的边,并求出圆和长方形的面积,在屏幕上显示。
5.编写一个Flyable接口,包含:
方法:
doubleflySpeed(),用于返回最大的飞行速度。
并实现该接口.
实验步骤:
1.
publicclassPerson{
Stringname;
Stringgender;
intage;
publicPerson(){
}
publicPerson(Stringname,Stringgender,intage){
this.name=name;
this.gender=gender;
this.age=age;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetGender(){
returngender;
}
publicvoidsetGender(Stringgender){
this.gender=gender;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
publicclassStudentextendsPerson{
Stringid;
Stringcname;
doublescore;
publicStudent(Stringid,Stringcname,doublescore){
super();
this.id=id;
ame=cname;
this.score=score;
}
publicStudent(){
//super();
}
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetCname(){
returncname;
}
publicvoidsetCname(Stringcname){
ame=cname;
}
publicdoublegetScore(){
returnscore;
}
publicvoidsetScore(doublescore){
this.score=score;
}
publicvoiddisplay(){
System.out.println(getName()+""+getGender()+""+getAge()+""+id+""+cname+""+score);
}
}
publicclassXiti1{
publicstaticvoidmain(Stringargs[]){
Students1=newStudent("12251102120","class1",89.5);
s1.setName("shade");
s1.setGender("女");
s1.setAge(21);
s1.display();
}
}
2.
publicclassA{
A(){
}
voidf(){
System.out.println("abc");
}
}
publicclassBextendsA{
B(){
}
publicvoidg(){
super.f();
System.out.println("大家好啊!
");
}
}
publicclassXiti2{
publicstaticvoidmain(Stringargs[]){
Bb=newB();
b.g();
}
}
3.
publicclassPointer{
privateintx;
privateinty;
Pointer(){
}
Pointer(intx,inty){
this.x=x;
this.y=y;
}
publicintgetX(){
returnx;
}
publicvoidsetX(intx){
this.x=x;
}
publicintgetY(){
returny;
}
publicvoidsetY(inty){
this.y=y;
}
voiddisplay(Pointerp1,Pointerp2){
System.out.println("两个点分别是:
"+"("+p1.getX()+","+p1.getY()+")"+",("+p2.getX()+","+p2.getY()+")");
}
staticdoubledistance(Pointerp1,Pointerp2){
returnMath.sqrt(Math.pow((p1.x-p2.x),2)+Math.pow((p1.y-p2.y),2));
}
}
publicclassXiti3{
publicstaticvoidmain(Stringargs[]){
Pointerx1=newPointer(2,2);
Pointerx2=newPointer(5,6);
x1.display(x1,x2);
System.out.println("这两点的距离是:
"+x1.distance(x1,x2));
}
}
4.
publicabstractclassArea{
abstractdoublearea();
}
publicclassRectAreaextendsArea{
doublec;
doublek;
RectArea(doublec,doublek){
this.c=c;
this.k=k;
}
publicdoublearea(){
return(this.c)*(this.k);
}
}
publicclassRoundAreaextendsArea{
doubler;
RoundArea(doubler){
this.r=r;
}
publicdoublearea(){
return3.14*(this.r)*(this.r);
}
}
importjava.util.Scanner;
publicclassImpleArea{
publicstaticvoidmain(Stringargs[]){
Scanners=newScanner(System.in);
System.out.println("请输入圆的半径:
");
doubler=s.nextDouble();
RoundArearound=newRoundArea(r);
System.out.println("圆的面积是"+round.area());
System.out.println("请输入长方形的长:
");
doublec=s.nextDouble();
System.out.println("请输入长方形的宽:
");
doublek=s.nextDouble();
RectArearectangle=newRectArea(c,k);
System.out.println("长方形的面积是"+rectangle.area());
}
}
5.
publicinterfaceFlyable{
publicdoubleflySpeed();
}
publicclassXiti5{
publicstaticvoidmain(Stringargs[]){
ShiXianJieKous=newShiXianJieKou();
System.out.println("最大飞行速度是:
"+s.flySpeed());
}
}
实验预测:
1.
2.
3.
4.
5.
实验结果:
1.
2.
3.
4.
5.
结论:
经过调试实验结果与预测相同。