比如前面定义了一个类为Point,里面有一个方法为getDistance(参数),如果我在public class中调用getDistance(),new出来两个新的点为p,p1,用p.getDistance(p1)到底怎么个执行方法,内存里又是什么样。get()和set()的用法一直不太懂……

解决方案 »

  1.   

    应该有个成员变量吧
    public class Point{
      private double distance;
      public double getDistance(){   //似乎这儿不带参数的
        return distance;
    }
      public void setDistance(double distance){
         this.distance=distance;
    }}这是myeclipse中的用法,你定义了成员变量可以用myeclipse自动生成get和set方法
      

  2.   

    一般来说,
    java 中的 get、set 方法为了获得或设置类中的成员变量而存在的楼主这个例子中的这个 getDistance() 貌似不是干这个事的
    而是计算两个 Point 对象之间的距离的
    就是说这个方法只是也用了 get 打头,但是和一般意义上说的 get、set 方法是有区别的
      

  3.   

    你创建了一个实例, distance 被初始化 ,然后你用setDistance(double distance) 给 实例中这个属性
    赋值 就这样
      

  4.   

    楼主说的这个好像不是2楼的get/set,具体把类贴出来看看
      

  5.   

    getDistance只是为了获取2点距离,和get set没关系。
    对象Point和另一个对象Point来计算。
      

  6.   

    把类的属性设置成private,然后通过getter,setter方法来对属性进行修改,这样封装起来较安全,别的地方不可以乱改类属性。
      

  7.   

    get 和 set方法一般用来获得或者设置类中的成员变量的,就像你有一个箱子(成员变量),然后你要得到这个箱子里的东西(如衣服),你就用get方法,这样你就获得了箱子里的衣服(即该成员变量的值),如果你要往这个箱子里放进一件衣服,你就用set方法。成员变量和set get方法在堆内存中,当你用一个引用(即你new了一个类后)调用get set方法时就往该成员变量所在的内存区间中读或者写数据。
    在你的getDistance(参数)方法中严格上不能算我刚所描述的成员变量,因为你的这个方法里还要求得p和p1
    之间的距离。即distance不是上面所说的箱子
      

  8.   

    lz说的get和set方法,不是ls说的那样。
      

  9.   

    get/set是针对对象的属性读取而言的。
    getDistance是计算两个点的距离,和这个没关系
    for example
    class Point {
        private int x,y;
        public point(int x, int y) {this.x=x; this.y=y;}
        public int getX(){return x;} //这里才是所谓的set/get
        public int getY(){return y;}
        public void setX(int x) {this.x=x;}
        public void setY(int y) {this.y=y;}    public double getDistance(Point p) { //这个是计算两个点的距离,和属性无关
            return Math.sqrt(Math.pow(x-p.getX(), 2) + Math.pow(y-p.getY()));
        }
    }
      

  10.   

    楼主问得好模糊
    1、通常来说,set、get方法是给类的属性赋值和获取属性的值,myeclipse里面可以自动生成2、你要是想问getDistance具体是怎么执行的,你代码要拿出来3、你要是想问方法调用时内存里面发生的事情,三两句话说不清楚,主要是参数传递的问题