您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > java程序设计实验五类的设计(二)
实验报告课程名称实验项目专业班级姓名学号指导教师实验成绩年月日实验五、JAVA类的设计(二)一、实验目的:1、理解Java语言是如何体现面向对象编程基本思想。2、掌握类的封装方法,以及如何创建类和对象。3、掌握成员变量和成员方法的特性。4、掌握类的继承性和多态性的作用。二、实验内容1、编写一个Java应用程序,要求定义一个抽象类Point,包含x,y坐标、若干构造函数、坐标移动方法和坐标打印方法,以及两个计算面积和周长的抽象函数。以该类为基础扩展如下3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”、和“圆形”。具体要求如下:a)Trangle类具有类型为double的三个边,定义必要的构造函数,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。还包括打印三角形坐标和三条边的方法。b)Lader类具有类型double的上底、下底、高,具有返回面积和周长的功能,还包括打印梯形坐标和三条边的方法。c)Circle类具有类型为double的半径、具有返回周长和面积的功能,还包括打印圆的坐标和三条边的方法。要求如下定义:Pointt[]=newPoint[9];前三个元素用Trangle类的构造方法初始化三个三角形对象,接下来三个元素用Lader类的构造方法初始化三个不同的梯形对象,最后三个元素初始化三个不同的圆的对象,分别调用类型定义的方法进行测试,最后输出9个图形的总周长和总面积。abstractclassPoint{doublex;doubley;doublez;Point(){x=0;y=0;z=0;}Point(doublexx,doubleyy,doublezz){x=xx;y=yy;z=zz;}abstractdoubleyidong(doublea,doubleb,doublec);abstractvoiddayingzuobiao();abstractdoublezhouchang();}classTrangleextendsPoint//三角形{Trangle(doublexx,doubleyy,doublezz){super(xx,yy,zz);}doublemianji(){return(x*y*z*(1/2.0));}doubleyidong(doublea,doubleb,doublec){x=x+a;y=y+b;z=z+c;return(x*y*z*(1/2.0));}voiddayingzuobiao(){System.out.println((+x+,+y+,+z+));}doublezhouchang(){returnx+y+z;}}classLaderextendsPoint//梯形{Lader(doubleshangdi,doublexiadi,doublegao){super(shangdi,xiadi,gao);}doublemianji(){return((x+y*z)/2.0);}doubleyidong(doublea,doubleb,doublec){x=x+a;y=y+b;z=z+c;return((x+y*z)/2.0);}voiddayingzuobiao(){System.out.println((+x+,+y+,+z+));}doublezhouchang(){returnMath.sqrt(z*z+(y-x)*(y-x));}}classCircleextendsPoint//圆形{doubler;Circle(){r=1;}Circle(doublebanjin){r=banjin;}doublemianji(){return(r*r*3.14);}doubleyidong(doublea,doubleb,doublec){x=x+a;y=y+b;z=z+c;return(r*r*3.14);}voiddayingzuobiao(){System.out.println((+x+,+y+,+z+));}doublezhouchang(){return2*r*3.14;}}publicclasszc{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubTranglea=newTrangle(2.0,2.0,2.0);Pointb;b=a;System.out.println(三角形的面积:+a.mianji());System.out.println(移动后三角形的面积:+b.yidong(1.0,1.0,1.0));System.out.println(三角形的周长:+a.zhouchang());System.out.print(三角形的坐标:);a.dayingzuobiao();Laderaa=newLader(2.0,4.0,2.0);Pointbb;bb=aa;System.out.println(梯形的面积:+aa.mianji());System.out.println(移动后梯形的面积:+bb.yidong(1.0,1.0,1.0));System.out.println(梯形的周长:+aa.zhouchang());System.out.print(梯形的坐标:);aa.dayingzuobiao();Circleaaa=newCircle(2.0);Pointbbb;bbb=aaa;System.out.println(圆形的面积:+aaa.mianji());System.out.println(移动后圆形的面积:+bbb.yidong(1.0,1.0,1.0));System.out.println(圆形的周长:+aaa.zhouchang());System.out.print(圆形的坐标:);aaa.dayingzuobiao();}}2、编写一个Java应用程序,要求定义一个接口Shape,包含PI的定义,以及两个计算面积和周长的函数。以该接口为基础扩展如下3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”、和“圆形”。具体要求如下:a)Trangle类具有类型为double的三个边,定义必要的构造函数,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。还包括打印三角形坐标和三条边的方法。b)Lader类具有类型double的上底、下底、高,具有返回面积和周长的功能,还包括打印梯形坐标和三条边的方法。c)Circle类具有类型为double的半径、具有返回周长和面积的功能,还包括打印圆的坐标和三条边的方法。测试类要求如下定义:Shapet[]=newShape[9];前三个元素用Trangle类的构造方法初始化三个三角形对象,接下来三个元素用Lader类的构造方法初始化三个不同的梯形对象,最后三个元素初始化三个不同的圆的对象,分别调用类型定义的方法进行测试,最后输出9个图形的总周长和总面积。interfaceShape{publicstaticfinaldoublePI=3.14;doublemianji();doublezhouchang();}classTrangleimplementsShape//三角形{doublebian1;doublebian2;doublebian3;Trangle(){bian1=1;bian2=1;bian3=1;}Trangle(doublebiana,doublebianb,doublebianc){bian1=biana;bian2=bianb;bian3=bianc;}publicdoublemianji(){return(bian1*bian2*bian3*(1/2.0));}publicdoublezhouchang(){returnbian1+bian2+bian3;}doubleyidong(doubleyidong1,doubleyidong2,doubleyidong3){bian1=bian1+yidong1;bian2=bian2+yidong2;bian3=bian3+yidong3;return(bian1*bian2*bian3*(1/2.0));}booleanisPanduan(Trangles){if(this.bian1+this.bian2this.bian3||this.bian1+this.bian3this.bian2||this.bian2+this.bian3this.bian1)returntrue;returnfalse;}voiddaying(){doublezuobiao;zuobiao=Math.sqrt((bian2*bian2-bian1*bian1/4.0));System.out.println(三角形第1边:+bian1);System.out.println(三角形第2边:+bian2);System.out.println(三角形第3边:+bian3);System.out.println(三角形坐标1:+(+0+,+0+));System.out.println(三角形坐标2:+(+0+,+bian1+));System.out.println(三角形坐标3:+(+bian1/2.0+,+zuobiao);}}classLaderimplementsShape//梯形{doubleshangdi;doublexiadi;doublegao;Lader(){shangdi=1;xiadi=1;gao=1;}Lader(doubleshangdi1,doublexiadi1,doublegao1){shangdi=shangdi1;xiadi=xiadi1;gao=gao1;}publicdoublemianji(){return(((shangdi+xiadi)*gao)/2.0);}doubleyidong(doublea,doubleb,doublec){shangdi=shangdi+a;xiadi=xiadi+b;gao=gao+c;return0;}publicdoublezhouchang(){doublebiao;biao=Math.sqrt(gao*gao+(xiadi-shangdi*shangdi)*(xiadi-shangdi*shangdi));return2*biao+shangdi+xiadi;}voiddaying(){System.out.println(梯形上底+shangdi);System.out.println(梯形下底高+xiadi);System.out.println(梯形高+gao);}}classCircleimplementsShape//圆形{doubler;Circle(){r=1;}Circle(doublebanjin){r=banjin;}publicdoublemianji(){return(r*r*PI);}publicdoublezhouchang(){return2*r*PI;}voiddaying(){System.out.println(圆的半径+r);}}publicclasszzz{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubdoublet[]={1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0};Tranglea=newTrangle(t[0],t[1],t[2]);Shapeb;b=a;System.out.pr
本文标题:java程序设计实验五类的设计(二)
链接地址:https://www.777doc.com/doc-2913341 .html