实验报告二java类的封装、继承、多态

ID:35342229

大小:58.10 KB

页数:5页

时间:2019-03-23

实验报告二java类的封装、继承、多态_第1页
实验报告二java类的封装、继承、多态_第2页
实验报告二java类的封装、继承、多态_第3页
实验报告二java类的封装、继承、多态_第4页
实验报告二java类的封装、继承、多态_第5页
资源描述:

《实验报告二java类的封装、继承、多态》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java实验二类的封装、继承、多态一•实验目的1.复习、理解OOP的三大特征——封装、继承和多态。2.学会使用Java编写简单的类。理解类的属性和方法。3•掌握关键字private,protected,public的作用,掌握静态类,内部类的概念。4.掌握多态的概念。二.实验内容2.1程序要求1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:(1)Point2D有两个整型成员变量x,y(分别为二维空间的XZY方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。(2)Point2D有一个voi

2、d型成员方法offset(inta,intb),它可以实现Point2D的平移。(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(intxjntyzintz)和Point3D(Point2Dpjntz)z两者均可实现对Point3D的成员变量x,yzz的初始化。(4)Point3D有一个void型成员方法offset(inta,intbjntc),该方法可以实现Point3D的平移。(5)在Point3D中的主函数main()中实例化两个P

3、oint2D的对象p2dl,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3dlzp3d2,打印出他们之间的距离。提示:java.lang..Math.sqrt()方法2•创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的〃打印方法",显示数组中存储的对象是什么。提示:java.lang..Math.random()方法或者java.util.Random类2.2设计工作设计思路:构造Point2D类z私有成员x,y存放2D点位置坐标z构造函数传入坐标值。Offset。函数平移2D点,g

4、et_x()zget_y()分别返回xzy坐标。PrintQ函数打印2D点坐标。再构造继承了2D类的Point3D类,将上述2D点函数覆盖扩充到3DO创建Point2D的对象数组,存放随机产生的Point2D或Point3D对象。用java.util.Random方法产生随机数。类图:point2D:Protectedintx,y;〃变量Point2D(intx,inty);〃构造方法Voidoffest(inta,intb);〃位移2DIntget_x();Intget_y();Voidprint();Point3DIntz;〃变量Point3D(in

5、tx,inty,intz);〃构造方法Point3D(point2Dp,intz);〃构造方法Voidoffest(inta,intb,intc);〃位移3DIntget_z();Voidprint();Point2D代码:classPoint2D{protectedintx,y;Point2D(intX^intY){x=X;y=Y;}voidoffsea,intb){x+=a;y+=b;}intget_x(){returnx;}intget_y(){returny;}voidprint(){System.out.printIn(”坐标为:"+this・

6、get_x()+""+this・get_y());}_Point3D代码:classPoint3D{protectedintx,y,z;Point3D(intX^intY,intZ){x=X;y=Y;z二Z;}voidoffset(inta,intb,intc){super(aJb);z+=c;}intget_x(){returnx;}intget_y(){returny;}intget_z(){returnz;}voidprint(){System.oL/t.printIn(”坐标为:H+this・get_x()+H"+this・get_y()+nn+

7、this.get_z());}}三•思考题1•什么是类的多态性。同一操作作用于不同的对象/可以有不同的解释/产生不同的执行结果/这就是多态性。♦编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。♦运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。四.程序代码importjava.util.Scanner;〃导入util包中的Scarmnci•类classPoint2D{protectedintx,y;Point2D(intX,intY){

8、〃冇参数的构造方法x=X;y=Y;}voidoffset(inta,intb){

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《实验报告二java类的封装、继承、多态》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java实验二类的封装、继承、多态一•实验目的1.复习、理解OOP的三大特征——封装、继承和多态。2.学会使用Java编写简单的类。理解类的属性和方法。3•掌握关键字private,protected,public的作用,掌握静态类,内部类的概念。4.掌握多态的概念。二.实验内容2.1程序要求1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:(1)Point2D有两个整型成员变量x,y(分别为二维空间的XZY方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。(2)Point2D有一个voi

2、d型成员方法offset(inta,intb),它可以实现Point2D的平移。(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(intxjntyzintz)和Point3D(Point2Dpjntz)z两者均可实现对Point3D的成员变量x,yzz的初始化。(4)Point3D有一个void型成员方法offset(inta,intbjntc),该方法可以实现Point3D的平移。(5)在Point3D中的主函数main()中实例化两个P

3、oint2D的对象p2dl,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3dlzp3d2,打印出他们之间的距离。提示:java.lang..Math.sqrt()方法2•创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的〃打印方法",显示数组中存储的对象是什么。提示:java.lang..Math.random()方法或者java.util.Random类2.2设计工作设计思路:构造Point2D类z私有成员x,y存放2D点位置坐标z构造函数传入坐标值。Offset。函数平移2D点,g

4、et_x()zget_y()分别返回xzy坐标。PrintQ函数打印2D点坐标。再构造继承了2D类的Point3D类,将上述2D点函数覆盖扩充到3DO创建Point2D的对象数组,存放随机产生的Point2D或Point3D对象。用java.util.Random方法产生随机数。类图:point2D:Protectedintx,y;〃变量Point2D(intx,inty);〃构造方法Voidoffest(inta,intb);〃位移2DIntget_x();Intget_y();Voidprint();Point3DIntz;〃变量Point3D(in

5、tx,inty,intz);〃构造方法Point3D(point2Dp,intz);〃构造方法Voidoffest(inta,intb,intc);〃位移3DIntget_z();Voidprint();Point2D代码:classPoint2D{protectedintx,y;Point2D(intX^intY){x=X;y=Y;}voidoffsea,intb){x+=a;y+=b;}intget_x(){returnx;}intget_y(){returny;}voidprint(){System.out.printIn(”坐标为:"+this・

6、get_x()+""+this・get_y());}_Point3D代码:classPoint3D{protectedintx,y,z;Point3D(intX^intY,intZ){x=X;y=Y;z二Z;}voidoffset(inta,intb,intc){super(aJb);z+=c;}intget_x(){returnx;}intget_y(){returny;}intget_z(){returnz;}voidprint(){System.oL/t.printIn(”坐标为:H+this・get_x()+H"+this・get_y()+nn+

7、this.get_z());}}三•思考题1•什么是类的多态性。同一操作作用于不同的对象/可以有不同的解释/产生不同的执行结果/这就是多态性。♦编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。♦运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。四.程序代码importjava.util.Scanner;〃导入util包中的Scarmnci•类classPoint2D{protectedintx,y;Point2D(intX,intY){

8、〃冇参数的构造方法x=X;y=Y;}voidoffset(inta,intb){

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭