| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 619 人关注过本帖
标题:新手,代码总是出错,调试很多次都不行,想知道怎么改的
只看楼主 加入收藏
晴天relax
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2014-10-26
结帖率:0
  已结贴   问题点数:10  回复次数:4   
新手,代码总是出错,调试很多次都不行,想知道怎么改的
class Point2D{
     int x , y ;
     double s;
     Point2D(int a ,int b)
    {
      x=a;
      y=b;
     }
     void offset(int a,int b)
    {
      x=x+a;
      y=y+b;
     }
     double distance(Point2D p1,Point2D p2)
    {
       double m;
       m = Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
       return m;
     }
}


public  class Point3D extends Point2D{
    int z;
    public Point3D(int a,int b ,int c)
    {
      super(x ,y);
      z=c;
     }
    void offset(int a,int b,int c)
    {   x=x+a;
        y=y+b;
        z=z+c;
     }
    double distance(Point3D p1,Point3D p2)
    {
       double m;
       m = Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z));
       return m;
     }
    public static void main(String args[]){
     Point2D p2d1= new Point2D(2,3);
     Point2D p2d2= new Point2D(4,5);
     Point3D p3d1= new Point3D(2,2,2);
     Point3D p3d2= new Point3D(3,3,3);
     System.out.println(new Point2D().distance(p2d1,p2d2));
     System.out.println(new Point3D().distance(p3d1,p3d2));
}
}

总是出错,怎么回事啊
搜索更多相关主题的帖子: distance  public  double  return  super  
2014-10-27 00:08
xl881221
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:30
专家分:177
注 册:2014-3-23
  得分:5 
两个类都加上空参数的构造函数

public Point3D(int a,int b ,int c)
    {
      super(x ,y);
      z=c;
     }
里面s,y,改成a,b
2014-10-27 12:39
晴天relax
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2014-10-26
  得分:0 
回复 2 楼 xl881221
哦,谢谢,是什么意思呢
2014-10-27 13:24
晴天relax
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2014-10-26
  得分:0 
回复 3 楼 晴天 relax
为什么要那样改。。。
2014-10-27 13:26
dzh151360980
Rank: 2
来 自:上海
等 级:论坛游民
威 望:1
帖 子:68
专家分:46
注 册:2014-9-24
  得分:5 
您好,很高兴能帮到您:修改后的代码及注释如下:
int x , y ;
      double s;
      Point2D(){    /*空构造函数*/
         
      }
      Point2D(int a ,int b)
     {
       x=a;
       y=b;
      }
      void offset(int a,int b)
     {
       x=x+a;
       y=y+b;
      }
      double distance(Point2D p1,Point2D p2)
     {
        double m;
        m = Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
        return m;
      }
 }


 public  class Point3D extends Point2D{   /*Point3D是子类继承父类Point2D,既继承了父类已有的属性和方法*/
     int z;
     public Point3D(){        /*空构造函数*/
         
     }
     
     public Point3D(int a,int b ,int c)   
     {
       super(a,b);            /*super(a,b)其实是在子类构造方法中重写了父类的构造方法,所以形参是子类的形参a,b*/
       z=c;
      }
     void offset(int a,int b,int c)
     {   x=x+a;
         y=y+b;
         z=z+c;
      }
     double distance(Point3D p1,Point3D p2)
     {
        double m;
        m = Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z));
        return m;
      }
     public static void main(String args[]){
      Point2D p2d1= new Point2D(2,3);
      Point2D p2d2= new Point2D(4,5);
      Point3D p3d1= new Point3D(2,2,2);
      Point3D p3d2= new Point3D(3,3,3);
      System.out.println(new Point2D().distance(p2d1,p2d2));/*new Point2D()是一个空构造方法,因为你已经重新定义,所以系统默认的被覆盖,需重新定义一个空构造方法*/
      System.out.println(new Point3D().distance(p3d1,p3d2));/*new Point3D()也是一个空构造方法*/
 }
 }

Java程序员的每一天都很精彩,哈哈!
2014-11-01 23:25







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022837 second(s), 7 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved