JAVA实验5.docx

上传人:b****6 文档编号:8599970 上传时间:2023-02-01 格式:DOCX 页数:19 大小:22.71KB
下载 相关 举报
JAVA实验5.docx_第1页
第1页 / 共19页
JAVA实验5.docx_第2页
第2页 / 共19页
JAVA实验5.docx_第3页
第3页 / 共19页
JAVA实验5.docx_第4页
第4页 / 共19页
JAVA实验5.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

JAVA实验5.docx

《JAVA实验5.docx》由会员分享,可在线阅读,更多相关《JAVA实验5.docx(19页珍藏版)》请在冰豆网上搜索。

JAVA实验5.docx

JAVA实验5

《Java语言程序设计》实验报告

实验序号:

05

实验项目名称:

继承和多态

学  号

xx

姓  名

xx

专业、班

xx

实验地点

xx实验室

指导教师

xx

时间

2012/5/22

一、实验目的及要求

目的:

理解继承与多态的概念,熟练掌握使用方法

二、实验设备(环境)

1.windows操作系统

2.MyEclipse软件

三、实验内容与步骤

1、设计一个数据类型判断类Polymorphism,使用重载、装箱等技术判断一个不带等号的Java表达式的结果的数据类型。

2、设计一个链表结点类LinkNode,此类可以存放int、long、float、double、byte、short、String、StringBuffer类型的数据。

用此类:

a、随机产生100个整数(范围自定)的链表,在生成的过程中从小到大排列,然后输出;b、随机产生100个6个英文字母的单词的链表,在生成的过程中从小到大排列,然后输出。

(关注装箱和拆箱相关概念)

3、A、在main()中使用LinkNode类创建4个实例,并赋予不同的值(long、double、StringBuffer、MyDate),然后使用Object中默认的toString()方法(从超级父类继承而来)显示结果。

B、继承LinkNode类创建新类LinkNodeS,在其中重写Object中默认的toString()方法(将结点的value转换成对应的字符串),main()中用LinkNodeS类同样创建4个实例,并赋予和上面同样的值(long、double、StringBuffer、MyDate),观察使用新的toString()方法的效果,体会继承与多态。

(MyDate的日期toString用标准格式)

4、有来自4类(鸟类、昆虫类、爬行类和鱼类)的100个动物聚在一起开会,商议和另一个动物部落打仗事宜,会议要求每个动物都要报告自己所属的动物类别和自己的天赋,以便选拔人才、组织兵力迎战。

设计:

用Animal作为基类,鸟类、昆虫类、爬行类和鱼类各作为Animal的子类设计类层次结构,设计时运用继承、重写并设计多态机制,同时对每个子类至少要添加一个其描述的动物特有的行为和一个特有的属性,以更准确地描述子类对象。

使用:

用循环随机生成这100个动物装入动物数组,要对每个动物进行编号和随机命名,用循环让每个参会的动物报告自己的类别和天赋。

Animal内容如下:

ClassAnimal

{

publicintid;//编号

publicStringname;//名字

//publicStringtype;//类别:

鸟类、昆虫类、爬行类和鱼类之一

publicvoidshowType()//在console上秀自己的类别

{

System.out.println(“MyIDis“+id+”andIamjustananimal,mytypeisgoingtobedeterminedlater.”);

}

publicvoidshowTalent()//在console上秀自己的天赋特长

{

System.out.println(“Idon’tknowwhatIamtalentedat.”);

}

}

(请认真观察和体会Java的继承和多态)

四、实验结果与数据处理

第一题:

publicclassJudge{

publicstaticvoidmain(String[]args)

{

System.out.println(Polymorphism.getType(1+2+3));

System.out.println(Polymorphism.getType(1234589001l*123456789));

System.out.println(Polymorphism.getType(1/3.0));

System.out.println(Polymorphism.getType(123.456f*123));

System.out.println(Polymorphism.getType('A'));

}

}

classPolymorphism

{

privatefinalstaticStringINT_TYPE="int";

privatefinalstaticStringLONG_TYPE="long";

privatefinalstaticStringDOUBLE_TYPE="double";

privatefinalstaticStringFLOAT_TYPE="float";

privatefinalstaticStringCHAR_TYPE="char";

privatefinalstaticStringBYTE_TYPE="byte";

privatefinalstaticStringSHORT_TYPE="short";

privatefinalstaticStringBOOLAEN_TYPE="boolean";

publicstaticStringgetType(inti){

returnINT_TYPE;

}

publicstaticStringgetType(longl){

returnLONG_TYPE;

}

publicstaticStringgetType(doubled){

returnDOUBLE_TYPE;

}

publicstaticStringgetType(floatf){

returnFLOAT_TYPE;

}

publicstaticStringgetType(charc){

returnCHAR_TYPE;

}

publicstaticStringgetType(byteby){

returnBYTE_TYPE;

}

publicstaticStringgetType(shorts){

returnSHORT_TYPE;

}

publicstaticStringgetType(booleanbo){

returnBOOLAEN_TYPE;

}

publicstaticStringgetType(Objectobj){

returnobj!

=null?

obj.toString().split("@")[0]:

null;

}

}

第二、三题:

publicclassmyLinkNode{

publicstaticvoidmain(String[]args)

{

int100();

englishString100();

LinkNodeaLong=newLinkNode(123456789l);

LinkNodeaDouble=newLinkNode(123.456);

LinkNodeaStringBuffer=newLinkNode("abcde");

LinkNodeaDate=newLinkNode("2011-11-1112:

13:

24");

System.out.println(aLong.toString());

System.out.println(aDouble.toString());

System.out.println(aStringBuffer.toString());

System.out.println(aDate.toString());

LinkNodeSanotherLong=newLinkNodeS(123456789l);

LinkNodeSanotherDouble=newLinkNodeS(123.456);

LinkNodeSanotherStringBuffer=newLinkNodeS("abcde");

LinkNodeSanotherDate=newLinkNodeS("2011-11-1112:

13:

24");

System.out.println(anotherLong.toString());

System.out.println(anotherDouble.toString());

System.out.println(anotherStringBuffer.toString());

System.out.println(anotherDate.toString());

}

staticvoidint100()

{

LinkNodetheFirst=newLinkNode(-1);

LinkNodeaPointer=theFirst;

LinkNodetheEnd=newLinkNode(1000);

aPointer.nextNode=theEnd;

for(inti=0;i<100;i++)

{

aPointer=theFirst;

LinkNodeaNode=newLinkNode((int)(Math.random()*1000));

while((Integer)aNode.value>(Integer)aPointer.nextNode.value)

{

aPointer=aPointer.nextNode;

}

aNode.nextNode=aPointer.nextNode;

aPointer.nextNode=aNode;

}

aPointer=theFirst;

for(inti=0;i<100;i++)

{

aPointer=aPointer.nextNode;

aPointer.display();

}

}

staticvoidenglishString100()

{

LinkNodetheFirst=newLinkNode("aaaaaa");

LinkNodeaPointer=theFirst;

LinkNodetheEnd=newLinkNode("zzzzzz");

aPointer.nextNode=theEnd;

intintCharCode;

for(inti=0;i<100;i++)

{

StringBufferaString=newStringBuffer();

aPointer=theFirst;

aString.setLength(0);

for(intj=0;j<6;j++)

{

intCharCode=0;

while(!

(intCharCode>=65&&intCharCode<=90||intCharCode>=97&&intCharCode<=122))

intCharCode=65+(int)(Math.random()*58);

aString.append((char)intCharCode);

}

LinkNodeaNode=newLinkNode(aString);

while(((String)aNode.value.toString()).compareTo((String)aPointer.nextNode.value.toString())>0)

{

aPointer=aPointer.nextNode;

}

aNode.nextNode=aPointer.nextNode;

aPointer.nextNode=aNode;

}

aPointer=theFirst;

for(inti=0;i<100;i++)

{

aPointer=aPointer.nextNode;

aPointer.display();

}

}

}

classLinkNode

{

publicObjectvalue;

publicLinkNodenextNode;

publicLinkNode(Objectobj)

{

value=obj;

}

publicvoiddisplay()

{

System.out.println(this.value);

}

}

classLinkNodeSextendsLinkNode

{

publicLinkNodeS(Objectobj)

{

super(obj);

}

publicStringtoString()

{

StringaString;

aString=""+value;

returnaString;

}

}

第四题:

publicclassAnimals{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args)

{

StringBuffer[]names;

names=newStringBuffer[100];

intintCharCode;

StringBufferaName=newStringBuffer();

for(inti=0;i<100;i++)

{

aName.setLength(0);

for(intj=0;j<6;j++)

{

intCharCode=0;

while(!

(intCharCode>=65&&intCharCode<=90||intCharCode>=97&&intCharCode<=122))

intCharCode=65+(int)(Math.random()*58);

aName.append((char)intCharCode);

}

names[i]=newStringBuffer(aName);

}

Animal[]animals=newAnimal[100];

intaNum,flag;

for(inti=0;i<100;i++)

{

aNum=30+(int)(Math.random()*70);

flag=(int)(Math.random()*4);

if(flag==0)

animals[i]=newBird(i+1,names[i],"bird","flying",aNum);

elseif(flag==1)

animals[i]=newInsect(i+1,names[i],"insect","jumping",aNum);

elseif(flag==2)

animals[i]=newReptilia(i+1,names[i],"reptilia","creeping",aNum);

else

animals[i]=newFish(i+1,names[i],"fish","swimming",aNum);

}

for(inti=0;i<100;i++)

{

animals[i].showType();

animals[i].showTalent();

if(animals[i]instanceofBird)

{

BirdaBird=(Bird)animals[i];

aBird.showMyFly();

}

elseif(animals[i]instanceofInsect)

{

InsectanInsect=(Insect)animals[i];

anInsect.showMyJump();

}

elseif(animals[i]instanceofReptilia)

{

ReptiliaaReptilia=(Reptilia)animals[i];

aReptilia.showMyCreep();

}

else

{

FishaFish=(Fish)animals[i];

aFish.showMySwim();

}

}

}

}

classAnimal

{

publicintid;//编号

publicStringBuffername;//名字

publicStringtype;//类别:

鸟类、昆虫类、爬行类和鱼类之一

publicStringtalent;

publicvoidshowType()//在console上秀自己的类别

{

System.out.print("MyIDis"+id+"andmynameis"+name+"."+"Iamjusta"+type+".");

}

publicvoidshowTalent()//在console上秀自己的天赋特长

{

System.out.print("Iamtalentedat"+talent+".");

}

}

classBirdextendsAnimal

{

publicintflySpeed;

publicBird(intid,StringBuffername,Stringtype,Stringtalent,intflySpeed)

{

this.id=id;

this.name=name;

this.type=type;

this.talent=talent;

this.flySpeed=flySpeed;

}

publicvoidshowMyFly()

{

System.out.println("AndIcanfly"+flySpeed+"kilometresperhour.");

}

}

classInsectextendsAnimal

{

publicintjumpHeight;

publicInsect(intid,StringBuffername,Stringtype,Stringtalent,intjumpHeight)

{

this.id=id;

this.name=name;

this.type=type;

this.talent=talent;

this.jumpHeight=jumpHeight;

}

publicvoidshowMyJump()

{

System.out.println("AndIcanjump"+jumpHeight+"cmhigh.");

}

}

classReptiliaextendsAnimal

{

publicintcreepSpeed;

publicReptilia(intid,StringBuffername,Stringtype,Stringtalent,intcreepSpeed)

{

this.id=id;

this.name=name;

this.type=type;

this.talent=talent;

this.creepSpeed=creepSpeed;

}

publicvoidshowMyCreep()

{

System.out.println("AndIcancreep"+creepSpeed+"kilometresperhour.");

}

}

classFishextendsAnimal

{

publicintswimSpeed;

publicFish(intid,StringBuffername,Stringtype,Stringtalent,intswimSpeed)

{

this.id=id;

this.name=name;

this.type=type;

this.talent=talent;

this.swimSpeed=swimSpeed;

}

publicvoidshowMySwim()

{

System.out.println("AndIcanswim"+swimSpeed+"kilometresperhour.");

}

}

运行结果:

int

long

double

float

char

 

13147983959698100104106108112122127134154158187204211216278306336344344357378383384386388388391392412423426433443447448455462476478486488489492495498504509510531564572603603617623627631635643663691705707713722727733742743765787788803804807820820841844848861873884892921939940956964975976981999AboRZxBOUbzDCNmcRPCyMBvZDLEEnZEvYVhtGZmNMRGkgeixGywnwyHCAOeZHqhBZVHvYloUJrhiVWKPuJZOKhxymcMtTpUANeNwKYNkzzeWNxJrgXNysQcYPFCIwCPJrTFMPdMuwAQOsODBQTbWYGQzalAsQzjtPiRpguMHSbJaaWSeGRLjShCOsbTIUJUWTWvtTkTaHoZvUUpqIPUmjNoDVZ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1