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

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

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

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

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

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

 

实验报告

课程名称

面向对象程序设计

实验名称

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

日期

2018/4/29

学生学号

姓名

班级

实验目的:

通过本次实验,要求学生能进一步掌握接口、java.lang包中的基础类库和

java.util包中的工具类库的使用方法。

实验条件:

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

1.定义Person类,包含name(姓名)、birthday(出生日期)、idCard(身份证

号)、sex(性别)、age(年龄)等基本信息,通过使用Comparator接口实验

Person类可以按姓名、年龄、出生日期等多种比较规则进行排序。

源代码:

packageperson;

 

public

class

Person{

String

name;

String

idCard

;

String

birthday

;

char

sex;

int

age;

public

Person(){

}

public

Person(String

name,String

idCard,String

birthday,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自动生成的方法存根

returnp1.pareTo(p2.name);

}

 

}

 

packageperson;

 

importjava.util.Comparator;

 

publicclassCompareBirthdayimplementsComparator{

 

@Override

publicintcompare(Personp1,Personp2){

//TODO自动生成的方法存根

returnp1.birthday.compareTo(p2.birthday);

}

 

}

 

packageperson;

 

importjava.util.Comparator;

 

publicclassCompareAgeimplementsComparator{

 

@SuppressWarnings("deprecation")

@Override

publicintcompare(Personp1,Personp2){

//TODO自动生成的方法存根

returnnewInteger(p1.age).compareTo(newInteger(p2.age));

 

—2

精选文库

 

}

 

}

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

(int

i=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

(int

i=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

(int

i=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

(int

i=0;i

System.out

.println(

"姓名:

"

+person

[i].

name+"

性别:

"

+person

[i].

sex+"

龄:

"

+person

[i].

age+"

生日:

"

+person[i].

birthday

);

 

—3

精选文库

 

}

 

}

 

}

实验结果:

 

2.首先定义基本几何图形接口(

IShape),然后定义IShape的实现类Circle(

形)、Square(正方形)和Triangle(

三角形)。

要求计算各种图形的面积和周长。

(提示:

求三角形的面积用海伦公式:

SL*(L

a)*(Lb)*(Lc),其中a,b,c

是三角形的边长,L=(a+b+c)/2

,即周长的一半。

 

源代码:

packagejiekoushape;

 

—4

精选文库

 

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;

}

 

—5

精选文库

 

@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;

}

 

—6

a*a;

精选文库

 

publicStringgetName(){

returnname;

}

 

publicvoidsetName(Stringname){

this.name=name;

}

 

publicdoublegetA(){

returna;

}

 

publicvoidsetA(doublea){

this.a=a;

}

 

@Override

publicdoublearea(){

//TODO自动生成的方法存根

return

}

 

@Override

publicdoublelength(){

//TODO自动生成的方法存根

return4*a;

}

 

@Override

 

—7

精选文库

 

publicStringtoString(){

//TODO自动生成的方法存根

returnname+"周长是:

"+length()+","+"面积是:

"+area();

}

 

}

 

packagejiekoushape;

 

publicclassTriangleimplementsIShape{

 

privateStringname;

privatedoublea;

privatedoubleb;

privatedoublec;

 

public

Triangle(String

name,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;

}

 

—8

精选文库

 

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;

}

 

—9

精选文库

 

@Override

publicStringtoString(){

//TODO自动生成的方法存根

returnname+"周长是:

"+length()+","+"面积是:

"+area();

}

 

}

 

packagejiekoushape;

 

publicclassDemoIShape{

 

publicstaticvoidmain(String[]args){

//TODO自动生成的方法存根

IShape

shape=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());

 

}

 

}

 

—10

精选文库

 

实验结果:

 

实验总结(结论或问题分析):

本次实验,主要是对接口、java.lang包中的基础类库和java.util包中的工具

类库的使用,其中最难得就是使用Comparator对Person类进行排序,通过

查阅资料了解了Comparator如何使用,受益匪浅。

 

实验成绩任课教师签名

 

—11

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

当前位置:首页 > 自然科学 > 物理

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

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