java实验01Word文档格式.docx

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

java实验01Word文档格式.docx

《java实验01Word文档格式.docx》由会员分享,可在线阅读,更多相关《java实验01Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

java实验01Word文档格式.docx

(3)接口实验

程序文件TestInterface.java。

运行该程序,然后按【思考问题】内容修改和观察程序。

packagecn.edu.sdju.joshua;

interfaceShapeAreaPeri{

doublegetArea();

doublegetPerimeter();

}

classTriangleimplementsShapeAreaPeri{

inta,b,c;

Triangle(inta,intb,intc){

this.a=a;

this.b=b;

this.c=c;

}

publicdoublegetArea(){

doublerp=(a+b+c)/2.0;

returnMath.sqrt((rp-a)*(rp-b)*(rp-c));

publicdoublegetPerimeter(){

return(a+b+c);

classRectangleimplementsShapeAreaPeri{

intwidth,length;

Rectangle(intw,intl){

width=w;

length=l;

returnwidth*length;

return(2*(width+length));

classCircleimplementsShapeAreaPeri{

intridus;

finaldoublepi=3.14;

Circle(intr){

ridus=r;

returnpi*ridus*ridus;

return2*pi*ridus;

publicclassInterfaceDemo{

publicstaticvoidmain(Stringargs[]){

ShapeAreaPeri[]sap=newShapeAreaPeri[5];

sap[0]=newRectangle(3,7);

sap[1]=newRectangle(10,8);

sap[2]=newCircle(8);

sap[3]=newTriangle(4,4,4);

sap[4]=newCircle

(2);

for(inti=0;

i<

5;

i++){

System.out.println("

当前形状面积="

+sap[i].getArea());

当前形状周长="

+sap[i].getPerimeter());

}

【思考问题】

在实现类Rectangle中注释掉一个方法后进行编译,看发生了什么?

为什么?

在实现类Rectangle中将各实现方法前的public修饰符去掉再进行编译,看发生了什么?

将接口ShapeAreaPeri中定义的两个方法前加上abstract修饰符再编译,看对程序有影响否?

不用单独的实现类Rectangle,直接在主类InterfaceDemo中实现那两个方法,如何修改程序?

将接口ShapeAreaPeri中定义的两个方法拆分定义成两个接口,即每个接口只定义一个方法,程序将如何修改?

(4)根据功能提示写程序:

设计一个实数类,一个复数类,都包含求模长(绝对值)、判断是否为0,求与它数和差积商的方法。

将全部类都定义在同一个.java文件中,部分代码已给出。

classRealNumber{

doublerealPart;

publicRealNumber(doublerealPart){

this.realPart=realPart;

publicRealNumber(){

this(0);

}

doublegetReal(){

returnrealPart;

publicdoublegetModulus(){//求模长,即绝对值

returnMath.abs(realPart);

publicbooleanisZero(){

//调用getModulus判断是不是0并返回结果

publicRealNumberAdd(RealNumbernum){

doublesumRealPart=this.realPart+num.getReal();

//得到和的数值

RealNumbersum=newRealNumber(sumRealPart);

//用和的数值构造实数类对象

returnsum;

//减法Subtract

//乘法Multiply

//除法Divide,除数为0(用isZero方法判断)时输出错误信息,返回用0构造的实数对象

classComplexNumber{//复数类继承实数类

//子类增加代表虚部的成员变量imaginaryPart

publicComplexNumber(doublerealPart,doubleimaginaryPart){//两个参数的构造方法

//子类构造方法第一条语句须调用父类构造方法

//给虚部赋值

//一个参数构造方法,将虚部当作0,调用两个参数的构造方法(两个参数的构造方法已包含对父类构造方法的调用,无需再调用)

//无参构造方法,将实部虚部都当作0,调用两个参数的构造方法(两个参数的构造方法已包含对父类构造方法的调用,无需再调用)

//getImaginary方法

//根据复数模长定义,重写父类求模长方法

//加法:

参数与返回值都是ComplexNumber类型

//减法:

//乘法:

//除法:

参数与返回值都是ComplexNumber类型,分母需要实数化,需用父类isZero判断除数是否为0,若为0返回用0构造的复数对象

publicclassDemo{

publicstaticvoidmain(Stringargs[]){

RealNumberr1=newRealNumber

(1);

RealNumberr2=newRealNumber

(2);

RealNumbersum=r1.Add(r2);

//r1和r2的和

//输出r1和r2的和差积商,注意输出信息的可读性

//输出r1和0的和差积商(需要用0构造实数类对象),注意输出信息的可读性,

ComplexNumberc1=newComplexNumber(1,2);

ComplexNumberc2=newComplexNumber(3,4);

//输出c1和c2的和差积商,注意输出信息的可读性

//输出c1和0的和差积商(需要用0构造复数类对象),注意输出信息的可读性

三、实验结果(关键代码和运行结果)

/**

*测试台球类

*

*@paramargs

*/

publicclassTestBoll{

publicstaticvoidmain(String[]args){

Billiardsbilliards=newBilliards("

紅色"

10);

billiards.show();

System.out.println("

-----------"

);

billiards.setR(20);

billiards.setColor("

蓝色"

classBoll{

privatedoubler;

publicBoll(doubler){

this.r=r;

publicdoublegetR(){

returnr;

publicvoidsetR(doubler){

classBilliardsextendsBoll{

privateStringcolor;

publicBilliards(Stringcolor,doubler){

super(r);

this.color=color;

publicvoidsetColor(Stringcolor){

/**

*显示台球的基本信息

publicvoidshow(){

台球的顏色:

"

+color+"

\t半径:

+getR());

图1-1运行结果

(2)/**

*创建学生类,并记录每个学生的信息

*@authorAdministrator

publicclassPerson{

publicStringname;

publicStringsex;

publicintage;

publicPerson(Stringname,Stringsex,intage){

this.name=name;

this.sex=sex;

this.age=age;

classStudentextendsPerson{

publicStringStuNum;

publicStringclassNum;

publicvoidsetAge(intage){

publicStudent(Stringname,Stringsex,intage,StringStuNum,

StringclassNum){

super(name,sex,age);

this.StuNum=StuNum;

this.classNum=classNum;

*显示学生的基本信息的方法

publicvoidshowInfo(){

姓名:

+name+"

性別:

+sex+"

年齡:

+age+"

学号:

+StuNum+"

班号:

+classNum);

}

Studentstudent[]=newStudent[3];

student[0]=newStudent("

张杨松"

"

男"

20,"

141003330212"

12"

student[1]=newStudent("

周梦帆"

19,"

141003330213"

13"

student[2]=newStudent("

陈思成"

141003330211"

11"

/*

*采用for循环,遍历,然后分别打印出每个同学的信息

*/

for(Student_student:

student){

_student.showInfo();

(3)

编译出错;

原因:

Rectangle实现了一个接口,就必须要实现接口中所有的抽象方法。

在接口中,成员方法的默认属性为:

public、abstrack;

实现接口中的方法时,必为:

public。

无影响;

原因:

接口中的成员方法的默认属性为:

classRectangle{

publicintgetWidth(){

returnwidth;

publicvoidsetWidth(intwidth){

this.width=width;

publicintgetLength(){

returnlength;

publicvoidsetLength(intlength){

this.length=length;

return0;

publicclassInterfaceDemoextendsRectangleimplementsShapeAreaPeri{

InterfaceDemo(intw,intl){

super(w,l);

returnlength*width;

return2*(length+width);

ShapeAreaPeri[]sap=newShapeAreaPeri[3];

sap[0]=newCircle(8);

sap[1]=newTriangle(4,4,4);

sap[2]=newCircle

(2);

sap.length;

---------------"

Rectangler=newInterfaceDemo(10,15);

长方形的面积为:

"

+r.getArea());

长方形的周长为:

+r.getPerimeter());

interfaceGetArea{

//获得面积、

interfaceGetPerimeter{

//获得周长

//三角形类

classTriangleimplementsGetArea,GetPerimeter{

//长方形类

classRectangleimplementsGetArea,GetPerimeter{

classCircleimplementsGetArea,GetPerimeter{

Rectangler=newRectangle(3,7);

Circlec=newCircle(8);

Trianglet=newTriangle(4,4,4);

长方形的面积="

长方形的周长="

--------------"

圆的面积="

+c.getArea());

圆的周长="

+c.getPerimeter());

三角形的面积="

+t.getArea());

三角形的周长="

+t.getPerimeter());

(4)

classRealNumber{

this.realPart=realPart;

publicRealNumber(){

d

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

当前位置:首页 > 表格模板 > 合同协议

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

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