黑马程序员技术交流社区

标题: 大家有空吗?帮我看看这个代码,有个小插曲不明白 [打印本页]

作者: 小泉真也    时间: 2013-12-29 21:49
标题: 大家有空吗?帮我看看这个代码,有个小插曲不明白
鄙人不才,刚刚自学java十来天。问的问题可能有点低水准。
刚刚看到一个练习的代码,自己也做了一遍。
做完之后,我想试试   setX(5.0)之后,如何定义 使输出打印 改变X之后的 P坐标?
我试了几个,都没成。有点懵了。摸不着头脑了

有没有朋友指导一下我


class Point
{

        //【定义一个点“Point”类,用来表示三位空间的点(三个坐标)】
        /*
        1、可以生成具有特定坐标的点对象
        2、提供可以设置三个坐标的方法
        3、提供可以计算该“点”距离远点的 平方的方法
        */
        double x, y, z;
        
        Point(double _x, double _y, double _z)//构造方法和类同名,没有返回值。
        {
                x = _x; y = _y; z = _z;
        }
        
        void setX(double _x)
        {        x = _x;}
        void setY(double _y)
        {        y = _y;}        
        void setZ(double _z)
        {        z = _z;}
        
        
        double getDistance(Point p)
        {
                return (x - p.x) * (x - p.x) + (y - p.y) * (y - p.y) + (z - p.z) * (z - p.z);
        }
}

public class TestPoint
{
        public static void main(String[] args)
        {
                Point p = new Point(1.0, 2.0, 3.0);
                Point p1 = new Point(0.0, 0.0, 0.0);
               
                System.out.println(p.getDistance(p1));
               
                p.setX(5.0);
                // System.out.println( ??? ); 如何定义 输出打印改变X之后的 P坐标?
                System.out.println(p.getDistance(new Point(1.0, 1.0, 1.0)));
        }
}

作者: 欢欢    时间: 2013-12-30 09:57
本帖最后由 欢欢 于 2013-12-30 10:09 编辑
  1. class Point
  2. {
  3.         /*【定义一个点“Point”类,用来表示三位空间的点(三个坐标)】
  4.         1、可以生成具有特定坐标的点对象
  5.         2、提供可以设置三个坐标的方法
  6.         3、提供可以计算该“点”距离原点的 平方的方法
  7.         */

  8.         double x, y, z;

  9.         Point(double _x, double _y, double _z)
  10.         {
  11.                 x = _x;
  12.                 y = _y;
  13.                 z = _z;
  14.         }

  15.         void setX(double _x)
  16.         {
  17.                 x = _x;
  18.         }
  19.         void setY(double _y)
  20.         {
  21.                 y = _y;
  22.         }
  23.         void setZ(double _z)
  24.         {
  25.                 z = _z;
  26.         }

  27.         double getDistance(Point p)
  28.         {
  29.                 return (x - p.x) * (x - p.x) + (y - p.y) * (y - p.y) + (z - p.z) * (z - p.z);
  30.         }
  31. }

  32. class TestPoint
  33. {
  34.         public static void main(String[] args)
  35.         {
  36.                 Point p = new Point(1.0, 2.0, 3.0);
  37.                 Point p1 = new Point(0.0, 0.0, 0.0);
  38.                 System.out.println(p.getDistance(p1));

  39.                 p.setX(5.0);
  40.                 System.out.println("p点坐标: ("+p.x+" , "+p.y+" , "+p.z+")");     //这样打印P坐标。
  41.                 System.out.println(p.getDistance(new Point(1.0, 1.0, 1.0)));
  42.         }
  43. }
复制代码


作者: 浮出一个美    时间: 2013-12-30 10:14
类里面的成员变量最好是private的,提供一个getter方法即可
作者: 小泉真也    时间: 2013-12-30 12:49
谢谢楼上的各位热心解答。。

另外一个朋友给了我一个解决办法, 看起来也挺不错。

System.out.println(p.x + " " + p.y + " " + p.z);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2