java接口与实现接口的类实验报告.docx
- 文档编号:6199116
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:12
- 大小:66.80KB
java接口与实现接口的类实验报告.docx
《java接口与实现接口的类实验报告.docx》由会员分享,可在线阅读,更多相关《java接口与实现接口的类实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
java接口与实现接口的类实验报告
实验报告
课程名称
面向对象程序设计
实验名称
实验六、接口与实现接口的类
日期
2018/4/29
学生学号
姓名
班级
实验目的:
通过本次实验,要求学生能进一步掌握接口、java.lang包中的基础类库和java.util包中的工具类库的使用方法。
实验条件:
电脑一台、能上网查阅资料。
1.定义Person类,包含name(姓名)、birthday(出生日期)、idCard(身份证号)、sex(性别)、age(年龄)等基本信息,通过使用Comparator
源代码:
packageperson;
publicclassPerson{
Stringname;
StringidCard;
Stringbirthday;
charsex;
intage;
publicPerson(){
}
publicPerson(Stringname,StringidCard,Stringbirthday,charsex,intage){
super();
this.name=name;
this.idCard=idCard;
this.birthday=birthday;
this.sex=sex;
this.age=age;
}
}
packageperson;
importjava.util.Comparator;
publicclassCompareNameimplementsComparator
@Override
publicintcompare(Personp1,Personp2){
//TODO自动生成的方法存根
returnpareTo(p2.name);
}
}
packageperson;
importjava.util.Comparator;
publicclassCompareBirthdayimplementsComparator
@Override
publicintcompare(Personp1,Personp2){
//TODO自动生成的方法存根
returnpareTo(p2.birthday);
}
}
packageperson;
importjava.util.Comparator;
publicclassCompareAgeimplementsComparator
@SuppressWarnings("deprecation")
@Override
publicintcompare(Personp1,Personp2){
//TODO自动生成的方法存根
returnnewInteger(p1.age).compareTo(newInteger(p2.age));
}
}
packageperson;
importjava.util.Arrays;
publicclassPersonText{
publicstaticvoidmain(String[]args){
//TODO自动生成的方法存根
intn=5;
Person[]person=newPerson[n];
person[0]=newPerson("张三","4569","1996年6月6日",'男',22);
person[1]=newPerson("李四","1234","1995年4月3日",'男',23);
person[2]=newPerson("王五","2589","1997年3月5日",'男',21);
person[3]=newPerson("赵丽","3698","1998年2月5日",'女',20);
person[4]=newPerson("宋月","5869","1998年1月1日",'女',20);
System.out.println("原来顺序为:
");
for(inti=0;i System.out.println("姓名: "+person[i].name+"性别: "+person[i].sex+"年龄: "+person[i].age+"生日: "+person[i].birthday); } System.out.println("\n按姓名排序后顺序为: "); Arrays.sort(person,newCompareName()); for(inti=0;i System.out.println("姓名: "+person[i].name+"性别: "+person[i].sex+"年龄: "+person[i].age+"生日: "+person[i].birthday); } System.out.println("\n按年龄排序后顺序为: "); Arrays.sort(person,newCompareAge()); for(inti=0;i System.out.println("姓名: "+person[i].name+"性别: "+person[i].sex+"年龄: "+person[i].age+"生日: "+person[i].birthday); } System.out.println("\n按生日排序后顺序为: "); Arrays.sort(person,newCompareBirthday()); for(inti=0;i System.out.println("姓名: "+person[i].name+"性别: "+person[i].sex+"年龄: "+person[i].age+"生日: "+person[i].birthday); } } } 实验结果: 2.首先定义基本几何图形接口(IShape),然后定义IShape的实现类Circle(圆形)、Square(正方形)和Triangle(三角形)。 要求计算各种图形的面积和周长。 (提示: 求三角形的面积用海伦公式: ,其中a,b,c是三角形的边长,L=(a+b+c)/2,即周长的一半。 ) 源代码: packagejiekoushape; publicinterfaceIShape{ publicdoublearea(); publicdoublelength(); } packagejiekoushape; publicclassCircleimplementsIShape{ privateStringname; privatedoubler; publicCircle(Stringname,doubler){ super(); this.name=name; this.r=r; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicdoublegetR(){ returnr; } publicvoidsetR(doubler){ this.r=r; } @Override publicdoublearea(){ //TODO自动生成的方法存根 returnMath.PI*Math.pow(r,2); } @Override publicdoublelength(){ //TODO自动生成的方法存根 returnMath.PI*r*2; } @Override publicStringtoString(){ //TODO自动生成的方法存根 returnname+"周长是: "+length()+","+"面积是: "+area(); } } packagejiekoushape; publicclassSquareimplementsIShape{ privateStringname; privatedoublea; publicSquare(Stringname,doublea){ super(); this.name=name; this.a=a; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicdoublegetA(){ returna; } publicvoidsetA(doublea){ this.a=a; } @Override publicdoublearea(){ //TODO自动生成的方法存根 returna*a; } @Override publicdoublelength(){ //TODO自动生成的方法存根 return4*a; } @Override publicStringtoString(){ //TODO自动生成的方法存根 returnname+"周长是: "+length()+","+"面积是: "+area(); } } packagejiekoushape; publicclassTriangleimplementsIShape{ privateStringname; privatedoublea; privatedoubleb; privatedoublec; publicTriangle(Stringname,doublea,doubleb,doublec){ super(); this.name=name; this.a=a; this.b=b; this.c=c; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicdoublegetA(){ returna; } publicvoidsetA(doublea){ this.a=a; } publicdoublegetB(){ returnb; } publicvoidsetB(doubleb){ this.b=b; } publicdoublegetC(){ returnc; } publicvoidsetC(doublec){ this.c=c; } publicdoublearea(){ //TODOAuto-generatedmethodstub doublel=(a+b+c)/2; returnMath.sqrt(l*(l-a)*(l-b)*(l-c)); } publicdoublelength(){ //TODOAuto-generatedmethodstub returna+b+c; } @Override publicStringtoString(){ //TODO自动生成的方法存根 returnname+"周长是: "+length()+","+"面积是: "+area(); } } packagejiekoushape; publicclassDemoIShape{ publicstaticvoidmain(String[]args){ //TODO自动生成的方法存根 IShapeshape=null; shape=newCircle("圆形",3); System.out.println(shape.toString()); shape=newSquare("正方形",4); System.out.println(shape.toString()); shape=newTriangle("三角形",3,4,5); System.out.println(shape.toString()); } } 实验结果: 实验总结(结论或问题分析): 本次实验,主要是对接口、java.lang包中的基础类库和java.util包中的工具类库的使用,其中最难得就是使用Comparator 实验成绩 任课教师签名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 接口 实现 实验 报告