资源描述:
《Java实验资料报告材料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告课程名称Java技术专业班级13-计算机科学与技术-1班学生及学号2013217098汀指导教师钟华刚实验地点计算中心2015~2016学年第一学期实验一类的封装、继承、多态一、实验目的1.复习、理解OOP的特征——封装、继承和多态。2.学会使用Java编写简单的类。理解类的属性和方法。3.掌握关键字private,protected,public的作用。4.掌握多态的概念。二、实验容1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:(1)Point2D有两个
2、整型成员变量x,y(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。(2)Point2D有一个void型成员方法offset(inta,intb),它可以实现Point2D的平移。(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),两者均可实现对Point3D的成员变量x,y,z的
3、初始化。(4)Point3D有一个void型成员方法offset(inta,intb,intc),该方法可以实现Point3D的平移。(5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。提示:java.lang.Math.sqrt()方法2.创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的“打印方法”,显示数组中存储的对象是什
4、么。提示:java.lang.Math.random()方法或者java.util.Random类三、实验代码packageexp1;importjava.util.Random;classPoint2D{intx,y;Point2D(intx,inty){this.x=x;this.y=y;}voidoffset(inta,intb){this.x+=a;this.y+=b;}voidprint(){System.out.printf("Point2D:(%d,%d)",x,y);}}classPoint3
5、DextendsPoint2D{intz;Point3D(intx,inty,intz){super(x,y);this.z=z;}voidoffset(inta,intb,intc){this.x+=a;this.y+=b;this.z+=c;}voidprint(){System.out.printf("Point3D:(%d,%d,%d)",x,y,z);}}publicclassMain{staticdoubledistance(Point2Da,Point2Db){returnjava.lang.M
6、ath.sqrt(((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)));}staticdoubledistance(Point3Da,Point3Db){returnjava.lang.Math.sqrt(((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z)));}publicstaticvoidmain(Stringargs[]){Point2Dp2d1=newPoint2D(1,1),p2d2=newPoint
7、2D(2,2);Point3Dp3d1=newPoint3D(1,1,1),p3d2=newPoint3D(2,2,2);System.out.printf("%f%f",distance(p2d1,p2d2),distance(p3d1,p3d2));intT=10;Point2Darr[]=newPoint2D[T];for(inti=0;i8、*100),y=(int)(java.lang.Math.random()*100),z=(int)(java.lang.Math.random()*100);if(type==0)arr[i]=newPoint2D(x,y);elsearr[i]=newPoint3D(x,y,z);}for(inti=0;i