| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 576 人关注过本帖
标题:java构造方法的问题
只看楼主 加入收藏
sdkt881217
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-13
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:5 
java构造方法的问题
//各位大哥帮帮忙吧我是自学JAVA零基础的 先谢谢了
/*定义一个“点”(TestPoint)类用来表示三维空间的点
(有三个坐标)。要求如下;
1.可以生成具有特定坐标的点对象。
2.提供可以设置三个坐标的方法。
3.提供可以计算该“点”距离远点距离平方的方法。
4编写程序验证上述三条。*/
   

class Point{ //这里Point是关键字吗?
    double x;
    double y;  //定义三个点
    double z;
   
    Point(double _x,double _y,double _z){ //构造方法 这里面定义的东西有啥用?是不是拿来给X Y Z赋值用的?
        x = _x;
        y = _y;
        z = _z;
        }
    void setX(double _x){ //如果说构造方法是赋值用的 那干嘛还要加一下方法 为什么一定要写没有返回值void能不写吗
        x = _x;
        }   
    /*void setY(double _x){
        y = _y;
        }   
    void setZ(double _x){
        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 agrs[]){
        Point p = new Point(1.0,2.0,3.0); // new一个Point的对象不是已经给x y z赋值了吗》?
        Point p1 = new Point(0.0,0.0,0.0);//这里是原点 可是我看不懂
        System.out.println(p.getDistance(p1));//这里完全不懂求细解?
        p.setX(5.0);// 是不是给x赋值5.0?
        System.out.println(p.getDistance(new Point(1.0,1.0,.0)));//这句话的意思完全不懂求细解
        }   
   
            }

[ 本帖最后由 sdkt881217 于 2013-2-1 16:18 编辑 ]
搜索更多相关主题的帖子: 编写程序 double 关键字 
2013-02-01 15:49
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
收藏
得分:0 
class Point{ //这里Point是关键字吗?-- 创建了一个类为Point
    double x;
    double y;  //定义三个点
    double z;
   
    Point(double _x,double _y,double _z){ //构造方法 这里面定义的东西有啥用?是不是拿来给X Y Z赋值用的?--初始化Piont 也就相当于给3个参数赋值
        x = _x;
        y = _y;
        z = _z;
        }
    void setX(double _x){ //如果说构造方法是赋值用的 那干嘛还要加一下方法 为什么一定要写没有返回值void能不写吗 --这个是对单个参数赋值,写入是不需要返回值的,当然你也可以返回,程序是死的人是活的,
        x = _x;
        }   
    /*void setY(double _x){
        y = _y;
        }   
    void setZ(double _x){
        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 agrs[]){
        Point p = new Point(1.0,2.0,3.0); // new一个Point的对象不是已经给x y z赋值了吗》? --创建一个Point实例初始化Point给3个参数赋值
        Point p1 = new Point(0.0,0.0,0.0);//这里是原点 可是我看不懂 --创建一个实例,与上相同但是这是2个不一样的对象
        System.out.println(p.getDistance(p1));//这里完全不懂求细解?--  System.out.println()是打印到控制台,p.getDistance(p1) 使用第一个对象的getDistance把第二个对象传进去,这是在Point中定义的double getDistance(Point p)方法
        p.setX(5.0);// 是不是给x赋值5.0?--对象p中的x是1.0修改为5.0
        System.out.println(p.getDistance(new Point(1.0,1.0,.0)));//这句话的意思完全不懂求细解--new Point(1.0,1.0,.0)同样的是创建一个匿名的实例
        }   
   
            }
2013-02-01 17:34
sdkt881217
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-13
收藏
得分:0 
回复 2楼 hhwz
你讲的我更加不懂了 汗 大哥你是调戏我哦 不过来是谢谢了、

[ 本帖最后由 sdkt881217 于 2013-2-1 19:15 编辑 ]
2013-02-01 19:08
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 3楼 sdkt881217
double getDistance(Point p){

        return(x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z)*(z - p.z);

        }
//设a,b两点a.getDistance(b)调用该方法时    double getDistance(Point b){

        return(a.x - b.x)*(a.x - b.x)+(a.y - b.y)*(a.y - b.y)+(a.z - b.z)*(a.z - b.z);       }

Stay hungry , Stay foolish!
2013-02-01 19:19
ren829
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:15
帖 子:255
专家分:1174
注 册:2006-3-11
收藏
得分:20 
java构造方法的问题
//各位大哥帮帮忙吧我是自学JAVA零基础的 先谢谢了
/*定义一个“点”(TestPoint)类用来表示三维空间的点
(有三个坐标)。要求如下;
1.可以生成具有特定坐标的点对象。
2.提供可以设置三个坐标的方法。
3.提供可以计算该“点”距离远点距离平方的方法。
4编写程序验证上述三条。*/
   

class Point{ //这里Point是关键字吗?这个是定义一个类,这个类包含 三个坐标点,并可以设置三个坐标点数值
    double x;
    double y;  //定义三个点
    double z;
   
    Point(double _x,double _y,double _z){ //构造方法 这里面定义的东西有啥用?是不是拿来给X Y Z赋值用的?我觉得还是叫做构造器来得好,这样可以确保你和方法不冲突到一起,他的作用是确保你创建对象的时候被初始化,在这个程序中, 你的确可以用下面的三个方法来调整成员变量的数值,但是构造器这货就算你不写上,他也会默认给你分配一个无参数构造器的。记住他的最大作用就是确保初始化。
        x = _x;
        y = _y;
        z = _z;
        }
    void setX(double _x){ //如果说构造方法是赋值用的 那干嘛还要加一下方法 为什么一定要写没有返回值void能不写吗
        x = _x;
        }   
    /*void setY(double _x){
        y = _y;
        }   
    void setZ(double _x){
        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 agrs[]){
        Point p = new Point(1.0,2.0,3.0); // new一个Point的对象不是已经给x y z赋值了吗》?这个地方就体现出构造器确保初始化的作用了,你必须在生成p这个对象的时候,把P的变量初始化,就是给与他1.0 2.0 3.0这些值。
        Point p1 = new Point(0.0,0.0,0.0);//这里是原点 可是我看不懂
        System.out.println(p.getDistance(p1));//这里完全不懂求细解?p是Point的对象对不对?那他就可以调用getDistance()对不对,P1也是Point对象对不对?那他就可以作为getDistance(Point p)的参数,这个方法返回一个  double数值,系统会自动调用一个toString()方法,就可以显示出来了。
        p.setX(5.0);// 是不是给x赋值5.0?
        System.out.println(p.getDistance(new Point(1.0,1.0,.0)));//这句话的意思完全不懂求细解 这个和上一个打印语句没什么区别,new Point(1.0,1.0,.0)调用Point构造器,生成一个Point对象,记住, p p1是Point对象的引用,并不是对象本身,new Point(1.0,1.0,.0)这个才是真正分配内存,产生对象,分解开也许你就懂了,Point p2=new new Point(1.0,1.0,.0)  double d; d=p.getDistance(p2);System.out.println(d);
        }
2013-02-02 00:08
zhyw2020
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-2-3
收藏
得分:0 
我看把三维点改为二维点,再求距离的方法,取个平方根会明白点,再把二维改为三维就明白了,double getDistance(Point p)中(x - p.x)*(x - p.x)+(y - p.y)*(y - p.y)+(z - p.z)*(z - p.z)少个取平方根的方法吧。
2013-02-03 22:52
快速回复:java构造方法的问题
数据加载中...
 
   



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

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