java接口与实现接口的类实验报告.docx

上传人:b****5 文档编号:6909200 上传时间:2023-01-12 格式:DOCX 页数:12 大小:66.88KB
下载 相关 举报
java接口与实现接口的类实验报告.docx_第1页
第1页 / 共12页
java接口与实现接口的类实验报告.docx_第2页
第2页 / 共12页
java接口与实现接口的类实验报告.docx_第3页
第3页 / 共12页
java接口与实现接口的类实验报告.docx_第4页
第4页 / 共12页
java接口与实现接口的类实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

java接口与实现接口的类实验报告.docx

《java接口与实现接口的类实验报告.docx》由会员分享,可在线阅读,更多相关《java接口与实现接口的类实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

java接口与实现接口的类实验报告.docx

java接口与实现接口的类实验报告

实验报告

课程名称

面向对象程序设计

实验名称

实验六、接口与实现接口的类

日期

2018/4/29

学生学号

姓名

班级

实验目的:

通过本次实验,要求学生能进一步掌握接口、java.lang包中的基础类库和java.util包中的工具类库的使用方法。

实验条件:

电脑一台、能上网查阅资料。

1.定义Person类,包含name(姓名)、birthday(出生日期)、idCard(身份证号)、sex(性别)、age(年龄)等基本信息,通过使用Comparator接口实验Person类可以按姓名、年龄、出生日期等多种比较规则进行排序。

源代码:

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对Person类进行排序,通过查阅资料了解了Comparator如何使用,受益匪浅。

实验成绩

任课教师签名

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

当前位置:首页 > 工作范文

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

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