实验三类的构成和对象的使用Word文档下载推荐.docx
《实验三类的构成和对象的使用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验三类的构成和对象的使用Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
5.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法
【实验要求】
1.编写一个声明java不同数据类型变量的程序
2.编写一个使用运算符、表达式、变量的程序
3.编写一个使用java数据的程序
4.编写表达式语句、复合语句的程序
5.编写使用不同选择结构的程序
6.编写使用不同循环结构的程序
【实验内容】
一、包的应用
在Elearning下载ygw.rar文件,进行解压。
得到Circle.class、Rect.class和MyWindow.class三个字节码文件,这三个文件都在ygw包中。
解压后这三个字节码文件在ygw文件夹中。
编写一个程序,把ygw文件夹放到所编写源文件所在的文件夹中,用import导入这三个类,分别定义三个类的对象,求半径为3的圆和长、宽分别为10、5的矩形的面积,定义MyWindow的一个对象后,观察结果,理解封装的好处(不需要知道类的内部细节,就可以方便的使用它,降低编程的难度)。
注意:
在Jcreator、Netbean等集成开发工具下,当定义了某个类的对象后,例如"
Circlec=newCircle();
"
,当输入"
c."
,当.出现后,将出现该类可用的方法和属性列表,可用鼠标直接选择所要的方法或属性。
程序代码:
importygw.Circle;
importygw.MyWindow;
importygw.Rect;
classyingyong{
publicstaticvoidmain(String[]args){
Circlec=newCircle();
MyWindowd=newMyWindow();
Recte=newRect();
e.setHeight(10);
e.setWidth(5);
c.setRadius(10.0);
System.out.println("
圆的周长为:
+c.getZhouchang());
圆的面积为:
+c.getArea());
矩形的周长:
+e.getZhouchang());
}
结果:
二、三角形和圆柱体的类封装及构造方法的使用(每个类存为不同的.java源文件)
(1)创建一个三角形类Triangle,放入以你的姓名为包名的包中。
三角形类Triangle包含的属性有三条边的长sideA,sideB,sideC,,这些属性设为private类型;
包含的方法有构造方法(两个:
一个没有参数,默认三边均为1.0;
一个给定三条边的长度,并进行判定给定的三条边是否能组成三角形,如果不能构成三角形则报错),求面积方法getArea(),求周长方法getLength();
提示:
设三角形的三边长为a,b,c,则它的面积为
,其中S=(a+b+c)/2,开平方的方法为Math.sqrt()。
packagesx;
publicclassTriangle{
privatedoublesideA;
privatedoublesideB;
privatedoublesideC;
publicTriangle(){
sideA=1.0;
sideB=1.0;
sideC=1.0;
}
publicTriangle(doublea,doubleb,doublec){
if(a+b>
c&
&
a+c>
b&
b+c>
a){
sideA=a;
sideB=b;
sideC=c;
else
不能构造三角形"
);
publicdoublegetArea(){
doubleS,s;
S=(sideA+sideB+sideC)/2;
s=Math.sqrt(S*(S-sideA)*(S-sideB)*(S-sideC));
returns;
publicdoublegetLength(){
doublec;
c=sideA+sideB+sideC;
returnc;
(2)创建一个圆柱体类YZT,放入以你的姓名为包名的包中。
圆柱体类YZT包含的属性有底面半径radius和圆柱体的高height,这些属性设为private类型;
包含的方法有构造方法(两个:
一个没有参数,默认底面半径和高均为1.0;
一个给定半径radius和圆柱体的高height,并且要求均大于0.0,符合实际圆柱体要求,否则报错),包含的方法有设置底面半径setRadius(),获取底面半径getRadius(),设置高setHeight(),获取高getHeight(),求体积calTJ(),求表面积calBMJ();
publicclassYZT{
privatedoubleheight;
privatedoubleradius;
publicYZT(){
radius=1.0;
height=1.0;
publicYZT(doubler1,doubleh1){
radius=r1;
height=h1;
publicbooleansetRadius(doubler1){
if(r1>
0){
radius=r1;
returntrue;
}
else{
不能构造圆柱体"
returnfalse;
publicbooleansetHeight(doubleh1){
if(h1>
returntrue;
System.out.println("
publicdoublegetRadius(){
returnradius;
publicdoublegetHeight(){
returnheight;
publicdoublecalTJ(){
returnMath.PI*Math.pow(radius,2)*height;
publicdoublecalBMJ(){
returnMath.PI*Math.pow(radius,2)*2+2*Math.PI*radius*height;
(3)用import导入三角形类Triangle,用Triangle类定义以下三个对象:
●定义默认的三角形,求它的面积和周长;
●定义边长分别为1.0,2.0,5.0的三角形,查看输出错误;
●定义边长分别为25,20,37.5的三角形,求它的面积和周长;
importsx.Triangle;
classsan{
Trianglec=newTriangle();
(1)三角形的周长为:
+c.getLength());
三角形的面积为:
Triangled=newTriangle(1.0,2.0,5.0);
(2)三角形的周长为:
+d.getLength());
+d.getArea());
Trianglee=newTriangle(25,20,37.5);
(3)三角形的周长为:
+e.getLength());
+e.getArea());
}结果:
(4)用import导入圆柱体类YZT,用YZT类定义以下三个对象:
●定义默认的圆柱体,求它的体积和表面积;
●定义半径radius和高heigth分别为2.0,-10.5的圆柱体,查看输出错误;
●定义半径radius和高heigth分别为12.5,11.0的圆柱体,求它的体积和表面积。
importsx.YZT;
YZTc=newYZT();
(1)\n圆柱体的体积为:
+c.calTJ());
圆柱体的表面积为:
+c.calBMJ());
YZTd=newYZT(-10.5,2.0);
(2)"
高"
+d.setHeight(-10.5));
底面半径"
+d.setRadius(2.0));
YZTe=newYZT(12.5,11.0);
(3)\n圆柱体的体积为:
+e.calTJ());
+e.calBMJ());
三、静态成员的使用
(1)使用Math类下的静态方法计算sin30°
+tan50°
+sqrt(10)的值。
packagemath;
importjava.lang.Math;
publicclassmath{
publicstaticvoidmain(String[]args)
{
System.out.println("
sin30°
+tan50°
+sqrt(10)的值为"
+(Math.sin(Math.toRadians(30))+Math.tan(Math.toRadians(50))+Math.sqrt(10)));
(2)声明一个点类Point,有两个private类型变量保存点坐标,一个类变量(静态变量)保存已有点的个数。
生成10个点的Point数组,第i个点的坐标为(i,i2),依次生成每一个点,输出每一个点的坐标和当前已有点的个数。
publicclasspoint{
privateintx;
privateinty;
publicstaticintpointCount=0;
publicpoint(intx,inty){
this.x=x;
this.y=y;
pointCount++;
publicintgetpoint1(){
returnx;
publicintgetpoint2(){
returny;
classexmple{
publicstaticvoidmain(String[]args){
inti;
for(i=0;
i<
10;
i++){
pointq=newpoint(i,i*i);
System.out.printf("
点的坐标:
(%d,%d),保存的点的个数:
%d\n"
q.getpoint1(),q.getpoint2(),q.pointCount);