分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求

  • 原题
  • 分析
  • 代码

原题

分别编写两个类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 (分别为三维空间的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,打印出他们之间的距离。

分析

这个题是对java中继承相关知识的应用,将其完整的写下来有助于增强我们对代码的熟练度。
具体要求题目计较明确,就是写两个类,然后再在主函数中运行,题目要求是在Point3D中的主函数main()中实例化相关对象,这里我想单独写一个主函数,感觉整体看起来会舒服一点,当然,你完全可以将单独出来的合并到一起。

代码

package Point;public class Point2D {protected int x;protected int y;public Point2D() {}public Point2D(int x, int y) {this.x = x;this.y = y;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}public void offset(int a, int b) {x += a;y += b;}}
package Point;public class Point3D extends Point2D {private int z;Point3D() {}Point3D(int x, int y, int z) {super(x, y);this.z = z;}public void setZ(int z) {this.z = z;}public int getZ() {return z;}Point3D(Point2D p, int z) {super(p.getX(), p.getY());this.z = z;}public void offset(int a, int b, int c) {super.offset(a, b);z = z + c;}}
package Point;import java.math.*;public class PointTest {public static void main(String[] args) {Point2D p2d1 = new Point2D(0, 0);Point2D p2d2 = new Point2D(1, 1);double length2D = distance2D(p2d1, p2d2);System.out.println("两点之间的距离是:" + length2D);Point3D p3d1 = new Point3D(0, 0, 0);Point3D p3d2 = new Point3D(1, 1, 1);double length3D = distance3D(p3d1, p3d2);System.out.println("三点之间的距离是:" + length3D);}public static double distance2D(Point2D p2d1, Point2D p2d2) {double distance;double x;double y;x = Math.pow((p2d1.getX() - p2d2.getX()), 2);y = Math.pow((p2d1.getY() - p2d2.getY()), 2);distance = Math.sqrt(y + x);return distance;}public static double distance3D(Point3D p3d1, Point3D p3d2) {double distance;double x;double y;double z;x = Math.pow((p3d1.getX() - p3d2.getX()), 2);y = Math.pow((p3d1.getY() - p3d2.getY()), 2);z = Math.pow((p3d1.getZ() - p3d2.getZ()), 2);distance = Math.sqrt(y + x + z);return distance;}}

分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求相关推荐

  1. 分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点

    分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求: (1) Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造 ...

  2. 本关任务:编写一个Point类,有x、y两个属性。编写一个PointDemo类,并提供一个distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对

    #java编程基础 以后会时常更新java编程题,分享所遇之难,答疑解惑,共同努力. 本关任务:编写一个Point类,有x.y两个属性.编写一个PointDemo类,并提供一个distance(Poi ...

  3. c++类与对象(多文件编程!)(编写一个有关股票的程序,其中有两个类:一个是深圳类shen_stock,另一个是上海类shang_stock。)

    #编写一个有关股票的程序,其中有两个类:一个是深圳类shen_stock,另一个是上海类shang_stock.类中有三项私有数据成员:普通股票个数general.ST股票个数st和PT股票个数pt, ...

  4. 编写book.java_Java集合框架上机练习题:编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法........

    编写一个Book类,该类至少有name和price两个属性.该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系.在 ...

  5. java编写计算类加减乘除_老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java...

    导航:网站首页 > 老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java 时间:2019-4-10 老师要求张浩使用面向对象的思想编 ...

  6. 编写一个表达学生和课程关系的程序,定义两个类Student和Course.在Student类中有一个Course的数组,表示学生所选的课程

    编写一个表达学生和课程关系的程序, 定义两个类Student和Course.在Student类中有一个Course的数组,表示学生所选的课程;在Course类里有一个Student数组,表示选了该课程 ...

  7. JAVA类与对象tank_5.编写一个java程序,该程序有两个类:Tank(用于刻画坦克)和Fight(主类)。 已知坦克类如下:...

    5.编写一个java程序,该程序有两个类:Tank(用于刻画坦克)和Fight(主类). 已知坦克类如下: public classTank{ double speed;        //坦克速度 ...

  8. c++继承与派生(设计一个圆类Circle和一个桌子类Table,另设计一个圆桌类Roundtable,它是前面两个类的派生类,要求编写测试程序给出输出一个圆桌的高度、面积和颜色等数据。)

    #设计一个圆类Circle和一个桌子类Table,另设计一个圆桌类Roundtable,它是前面两个类的派生类,要求编写测试程序给出输出一个圆桌的高度.面积和颜色等数据. #include<io ...

  9. 按要求编写一个Java应用程序:(1)编写一个矩形类Rect,包含:两个属性...2、定义一个接口Shape,包括计算图形面积(getArea)和周长(getcir)...

    1.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含:两个属性:矩形的宽width和高height:一个带有两个参数的构造方法,用于将width和height属性初化:两个方法:求 ...

最新文章

  1. linux如何关闭防火墙
  2. TensorFow的基本使用
  3. 问题解决-Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
  4. 嵌入式linux基础知识累积
  5. php接口调用实例源代码,小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例...
  6. 初二物理模型有哪些_初二是成绩下滑的高危期,做好这5点成绩涨涨涨!(附全学科提升技巧,家长转给孩子!)...
  7. c++面试常考的知识点汇总
  8. SQL存储过程的导入导出
  9. jmeter 压测 RabbitMQ_单机
  10. Triangle Counting【数学】
  11. matlab小区制移动通信网,LTE习题 - 无线移动 - 通信人家园 - Powered by C114
  12. 第一批富起来的人,正在悄悄变“穷”
  13. python画简便的图-如何用python画M集(1)——M集原始图的画法
  14. arcview、arcinfo、arceditor的区别
  15. 计算机ppt教程 猫先生,漏斗式提问法.ppt
  16. python timepicker_Android DatePicker和TimePicker:时间日期选择器
  17. 中小企业成本的会计核算方法
  18. DOS批处理下格式化日期字符串
  19. UVA12304-2D Geometry 110 in 1!
  20. 山东理工ACM 1115 C语言实验——交换两个整数的值(顺序结构)两种方法

热门文章

  1. 枣庄高新技术企业认定优惠政策,同邦科技分享
  2. 怎么计算java对象的大小?
  3. 用 matplotlib 绘制 3D 时间序列动态图
  4. 泰山OFFICE技术讲座:FreeType获取kerning函数FT_Get_Kerning研究
  5. arm服务器计算性能,【干货分享】ARM/x86服务器的ceph性能对比报告
  6. 02.windows转mac日记——操作习惯
  7. 密码学应用-身份认证+数字证书
  8. ZYNQ图像处理|静态图像通路|VDMA寄存器、DDR内存操作
  9. 几何学的公理化:塔尔斯基 pk 希尔伯特,谁能取胜?
  10. QT之QByteArry