Java类及对象实验报告Word文档下载推荐.docx

上传人:b****2 文档编号:6132782 上传时间:2023-05-06 格式:DOCX 页数:15 大小:54.40KB
下载 相关 举报
Java类及对象实验报告Word文档下载推荐.docx_第1页
第1页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第2页
第2页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第3页
第3页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第4页
第4页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第5页
第5页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第6页
第6页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第7页
第7页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第8页
第8页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第9页
第9页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第10页
第10页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第11页
第11页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第12页
第12页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第13页
第13页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第14页
第14页 / 共15页
Java类及对象实验报告Word文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java类及对象实验报告Word文档下载推荐.docx

《Java类及对象实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java类及对象实验报告Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。

Java类及对象实验报告Word文档下载推荐.docx

(一)三角形、梯形和圆形的类封装

✧实验要求:

编写一个Java应用程序,该程序中有3个类:

Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

具体要求如下:

a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。

b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。

c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

✧程序模板:

AreaAndLength.java

classTrangle

{

doublesideA,sideB,sideC,area,length;

booleanboo;

publicTrangle(doublea,doubleb,doublec)

{

this.sideA=a;

//【代码1】参数a,b,c分别赋值给sideA,sideB,sideC

this.sideB=b;

this.sideC=c;

if((sideA+sideB)>

sideC&

&

(sideC+sideB)>

sideA&

(sideC+sideA)>

sideB)

//【代码2】a,b,c构成三角形的条件表达式

boo=true;

//【代码3】给boo赋值。

}

else

boo=false;

【代码4】//给boo赋值。

}

doublegetLength()

returnsideA+sideB+sideC;

【代码5】//方法体,要求计算出length的值并返回

publicdoublegetArea()

if(boo)

doublep=(sideA+sideB+sideC)/2.0;

area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));

returnarea;

System.out.println("

不是一个三角形,不能计算面积"

);

return0;

publicvoidsetABC(doublea,doubleb,doublec)

//【代码6】参数a,b,c分别赋值给sideA,sideB,sideC

if((sideA+sideB)>

sideB【代码7】)//a,b,c构成三角形的条件表达式

boo=true;

【代码8】//给boo赋值。

【代码9】//给boo赋值。

}

classLader

doubleabove,bottom,height,area;

Lader(doublea,doubleb,doubleh)

{

this.above=a;

this.bottom=b;

this.height=h;

【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height

doublegetArea()

return(above+bottom)*height/2;

【代码11】//方法体,,要求计算出area返回

classCircle

doubleradius,area;

Circle(doubler){this.radius=r;

【代码12】//方法体}

doublegetArea(){returnMath.PI*radius*radius;

//【代码13】方法体,要求计算出area返回

doublegetLength(){

returnMath.PI*2*radius;

//【代码14】getArea方法体的代码,要求计算出length返回}

voidsetRadius(doublenewRadius){radius=newRadius;

doublegetRadius(){returnradius;

publicclassAreaAndLength{

publicstaticvoidmain(Stringargs[]){

doublelength,area;

Circlecircle=null;

Trangletrangle;

Laderlader;

circle=newCircle(5);

【代码15】//创建对象circle

trangle=newTrangle(3,4,5);

【代码16】//创建对象trangle。

lader=newLader(2,3,4);

【代码17】//创建对象lader

length=circle.getLength();

System.out.println("

圆的周长:

"

+length);

area=circle.getArea();

圆的面积:

+area);

length=trangle.getLength();

三角形的周长:

area=trangle.getArea();

三角形的面积:

area=lader.getArea();

梯形的面积:

trangle.setABC(12,34,1);

}}

✧实验后的练习:

1.程序中仅仅省略【代码15】,编译能通过吗?

不能通过,提示如下

Exceptioninthread"

main"

java.lang.Error:

Unresolvedcompilationproblems:

Thelocalvariablecirclemaynothavebeeninitialized

atAreaAndLength.Trangle$AreaAndLength.main(Trangle.java:

85)

2.程序中仅仅省略【代码16】,编译能通过吗?

Thelocalvariabletranglemaynothavebeeninitialized

89)

3.程序中仅仅省略【代码15】,运行时出现怎样的异常提示?

1.给Trangle类增加3个方法,分别用来返回3个边:

sideA、sideB和sideC。

doublegetsideA(){returnsideA;

doublegetsideB(){returnsideB;

doublegetsideC(){returnsideC;

2.让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。

circle.setRadius(3);

System.out.println("

修改后的半径为"

+circle.getRadius());

修改后的面积为"

+circle.getArea());

修改后的周长为"

+circle.getLength());

(二)实例成员与类成员。

按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

✧程序运行效果示例:

程序运行效果如下图所示:

Example.java

classA

【代码1】//声明一个float型实例变量a

【代码2】//声明一个float型类变量b,

voidsetA(floata)

【代码3】//将参数a的值赋值给成员变量a

voidsetB(floatb)

【代码4】//将参数b的值赋值给成员变量b

floatgetA()

returna;

floatgetB()

returnb;

voidinputA()

System.out.println(a);

staticvoidinputB()

System.out.println(b);

publicclassExample

publicstaticvoidmain(Stringargs[])

A.b=100;

//通过类名操作类变量b,并赋值100

A.inputB();

//通过类名调用方法inputB()

Acat=newA();

Adog=newA();

cat.setA(200);

//cat调用方法setA(inta)将cat的成员a的值设置为200

cat.setB(400);

//cat调用方法setB(intb)将cat的成员b的值设置为400

dog.setA(150);

//dog调用方法setA(inta)将dog的成员a的值设置为150

dog.setB(300);

//dog调用方法setB(intb)将dog的成员b的值设置为300

cat.inputA();

//cat调用inputA()。

cat.inputB();

//cat调用inputB()。

dog.inputA();

//dog调用inputA()。

dog.inputB();

//dog调用inputB()。

}

1.将inputA()方法中的

System.out.println(a);

改写为

System.out.println(a+b);

编译是否出错?

为什么?

不会,可以在非静态方法中引用静态变量。

2.将inputB()方法中的

System.out.println(b);

编译是否报错?

会,无法在静态方法中引用非静态变量。

(三)使用package语句与import语句。

按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及

自定义包中的类。

掌握一些重要的操作步骤。

程序模板:

模板1:

将模板1给出的Java源文件命名为SquareEquation.java,将编译后得到的字节码文件复制到c:

\1000\tom\jiafei目录中。

SquareEquation.java

packagetom.jiafei;

publicclassSquareEquation

doublea,b,c;

doubleroot1,root2;

publicSquareEquation(doublea,doubleb,doublec)

this.a=a;

this.b=b;

this.c=c;

if(a!

=0)

publicvoidgetRoots()

是一元2次方程"

doubledisk=b*b-4*a*c;

if(disk>

root1=(-b+Math.sqrt(disk))/(2*a);

root2=(-b-Math.sqrt(disk))/(2*a);

System.out.printf("

方程的根:

%f,%f\n"

root1,root2);

方程没有实根\n"

不是一元2次方程"

publicvoidsetCoefficient(doublea,doubleb,doublec)

模板2:

将模板2给出的Java源程序SunRise.java保存到d:

\2000中。

在编译模板2给出的Java源文件之前,要重新设置classpath。

假设本地机SDK的安装目录是E:

\jdk1.8。

在命令行执行如下命令:

setclasspath=C:

\ProgramFiles\java\jdk\jre\lib\rt.jar;

.;

c:

\1000

或用鼠标右键点击“我的电脑”,弹出快捷菜单,然后选择“属性”命令,弹出“系统属性”对话框,再单击该对话框中的“高级”选项卡,然后单击“环境变量”按钮。

将classpath的值修改为:

E:

\jdk1.5\jre\lib\rt.jar;

C:

然后重新打开一个命令行窗口,编译模板2给出的Java源程序。

SunRise.java

importtom.jiafei.*;

classSunRise

publicstaticvoidmain(Stringargs[])

SquareEquationequation=newSquareEquation(4,5,1);

equation.getRoots();

equation.setCoefficient(-3,4,5);

【运行结果】

五.总结

本次实验是Java的第二次上机,通过编程和上机实验理解了Java语言是如何体现面向对象编程基本思想,了解了类的封装方法,以及如何创建类和对象,了解了成员变量和成员方法的特性,掌握了OOP方式进行程序设计的方法。

感受到了Java语言独有的魅力,为以后的Java语言编程奠定了基础。

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2