28-汪宜飞-实验四

上传人:第*** 文档编号:34215584 上传时间:2018-02-22 格式:DOC 页数:12 大小:91.54KB
返回 下载 相关 举报
28-汪宜飞-实验四_第1页
第1页 / 共12页
28-汪宜飞-实验四_第2页
第2页 / 共12页
28-汪宜飞-实验四_第3页
第3页 / 共12页
28-汪宜飞-实验四_第4页
第4页 / 共12页
28-汪宜飞-实验四_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《28-汪宜飞-实验四》由会员分享,可在线阅读,更多相关《28-汪宜飞-实验四(12页珍藏版)》请在金锄头文库上搜索。

1、 面向对象程序设计实验报告合 肥 院学院计算机科学与技术系实验名称 _java 继承与多态_日期_2014.10.22姓名/学号 汪宜飞_/_1304091028_ 专业/班级 _软件工程_/_1 班_指导老师_ _吴 晓 晴 _成 绩_1、实验目的:(详见指导书,宋体小四)掌握继承、多态的概念与实现方法;掌握包和接口的定义和使用方法;掌握 JAVA 语言实现多继承的途径;二 、 实 验 要 求 : (详见指导书,宋体小四)1. 能实现类的继承关系;2. 用多种方法创建各个类的对象;3. 程序应包括各个被调用方法的执行结果的显示。4. 写出实验报告。要求记录编译和执行 Java 程序当中的系统

2、错误信息提示,并给出解决办法。(附运行界面、源代码)。3、实 验 内 容 及 过 程 : ( 宋体小四,)1分别编写两个类 Point2D,Point3D 来表示二维空间和三维空间的点,使之满足下列要求:(1) Point2D 有两个整型成员变量 x, y (分别为二维空间的 X,Y 方向坐标),Point2D 的构造方法要实现对其成员变量 x, y 的初始化。(2)Point2D 有一个 void 型成员方法 offset(int a, int b),它可以实现Point2D 的平移。(3)Point3D 是 Point2D 的直接子类,它有有三个整型成员变量 x,y,z (分别为三维空间的

3、 X,Y,Z 方向坐标),Point3D 有两个构造方法:Point3D(int x,int y,int z)和 Point3D(Point2D p,int z),两者均可实现对 Point3D 的成员变量 x, y,z 的初始化。(4)Point3D 有一个 void 型成员方法 offset(int a, int b,int c),该方法可以实现 Point3D 的平移。(5)在 Point3D 中的主函数 main()中实例化两个 Point2D 的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个 Point2D 的对象p3d1,p3d2,打印出他们之间的距离。2定义抽象类 S

4、hape,抽象方法为 showArea(),求出面积并显示,定义矩形类 Rectangle,正方形类 Square,圆类 Circle,根据各自的属性,用showArea 方法求出各自的面积,在 main 方法中构造 3 个对象,调用showArea 方法。定义接口 DiagArea,其中包含方法 double getDiagonal()求对角线长, double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长 w 和宽 h,正方形有边 x,并有相应的构造函数,有一个方法中一次直接显示边长、面积和对角线长),在另一类中的主

5、方法里使用测试该类。1、定义一个描述人的基本类,该类包括人的性别和出生日期两个数据成员,以及设置和获取这些属性值的方法成员;再定义一个大学生类,使大学生类具有人的所有属性外,还具有姓名、学号,大学入学成绩,籍贯属性以及设置和获取这些属性值的方法成员;编写完整的程序,完成一个具有班级学生信息管理功能的程序。在这个程序中,先定义父类 people,在其中输入成员变量性别和出生日期,并通过方法 set 和 get 来输入、返回成员值,定义方法 String 来输出成员的信息;在定义子类 student 继承父类,输入姓名、学号,大学入学成绩,籍贯属性数据成员,并通过方法 set 和 get 来输入、

6、返回成员值,定义方法 String 来输出学生的信息;在主函数中,实例化学生类并赋值,调用 String 方法输出学生信息。4、实 验 中 的 问 题 思 考 及 讨 论 : (列出你实验中出现的问题,及解决的问题和解决的思路)在第一个程序中,在类 Point2D 中定义了方法 public Point2D(int x,int y)输入条件 this.x=x;this.y=y;,而在类 Point3D 中定义 public Point3D(Point2D p,int z)没有输入条件 this.x =p.x;this.y =p.y;导致最后输出的值为 0,通过比较添加了条件程序正确运行了。五

7、、 实 验 总 结 : (简单、准确的总结本次实验的主要内容,个人收获)只要不断的上机实验,不断的发现自己的错误,才能正真的掌握 Java 这一门程序语言。加深了解了继承的概念,通过子类通过继承父类的属性并添加自身的属性使子类更加完善,也贴合实际有助于解决现实中的问题。6、源 代 码 及 运 行 结 果 class shiyan public static void main(String args) Point2D p1=new Point2D(2,3);Point2D p2=new Point2D(0,0);p2=p1.offset(p1.x, p1.y);System.out.print

8、ln(平移后的坐标为:+p2.x+ +p2.y);p2.dis(p1,p2);Point3D p3=new Point3D(2,3,4);Point3D p4=new Point3D(0,0,0);p4=p3.offset(p3.x,p3.y,p3.z);System.out.println(平移后的坐标为:+p4.x+ +p4.y+ +p4.z);p3.dis(p3,p4);class Point2Dint x,y;Point2D()public Point2D(int x,int y)this.x=x;this.y=y;public int getX()return x;public in

9、t getY()return y;public Point2D offset(int x,int y)Point2D p2=new Point2D(1,1);p2.x=p2.x+x;p2.y=p2.y+y;return p2;public void dis(Point2D p1,Point2D p2)double x;p1.x=(p1.x-p2.x)*(p1.x-p2.x);p1.y=(p1.y-p2.y)*(p1.y-p2.y);x=Math.sqrt(p1.x+p1.y);System.out.println(坐标 p1、p2 之间的距离:+x);class Point3D extends

10、 Point2Dint z;Point3D(int x,int y,int z) this.x = x;this.y = y;this.z = z;public Point3D(Point2D p,int z)this.x =p.x;this.y =p.y;this.z=z;public int getZ()return z;public Point3D offset(int x,int y,int z)Point3D p4=new Point3D(1,1,1);p4.x=p4.x+x;p4.y=p4.y+y;p4.z=p4.z+z;return p4;public void dis(Poin

11、t3D p3,Point3D p4)double x;p3.x=(p3.x-p4.x)*(p3.x-p4.x);p3.y=(p3.y-p4.y)*(p3.y-p4.y);p3.z=(p3.z-p4.z)*(p3.z-p4.z);x=Math.sqrt(p3.x+p3.y+p3.z);System.out.println(坐标 p3、p4 之间的距离:+x); class Shape public static void main(String args) Rectangle a=new Rectangle(3,4);a.showArea();Square b=new Square(3);b.s

12、howArea();b.show();Circle c=new Circle();c.showArea();abstract class Shape1abstract void showArea();interface DiagAreadouble getDiagonal();double getArea();class Rectangle implements DiagAreadouble a,b;double c;double d;Rectangle(double a,double b)this.a=a;this.b=b;public double getDiagonal()c=Math.

13、sqrt(a*a)+(b*b);return c;public double getArea()d=a*b;return d;void showArea()System.out.println(矩形长、宽:+a+ +b);System.out.println(矩形对角线:+getDiagonal();System.out.println(矩形面积:+getArea();class Square extends Rectangleint a=3;double c;double d;Square(int a)super(a,a);this.a=a;void showArea()System.out

14、.println(正方形面积:+(a*a);public double getDiagonal()c=Math.sqrt(a*a)+(a*a);return c;public double getArea()d=a*a;return d;void show()System.out.println(正方形边长:+a);System.out.println(正方形对角线:+getDiagonal();System.out.println(正方形面积:+getArea();class Circle int a=3;double PI=3.14;void showArea()System.out.pr

15、intln(圆面积:+(a*a*PI);class persion public static void main(String args) student a=new student();a.setbir(1993/1/10);a.setgrade(69);a.setlocal(合肥);a.setname(wang);a.setsex(男);a.setnumber(1304091028);a.String();class peoplepublic String sex;public String bir;public void setsex(String sex)this.sex=sex;public void setbir(String bir)this.bir=bir;public String getsex()return sex;public String getbir()return bir;void String()System.out.println(性别:+sex+t 出生日期+bir);class student extends peoplepublic String name;public String

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号