get方法是为了让外部程序读取private里的内容是么?那个return this.x 的this是干嘛的。输出返回值的时候为什么this可以不加。初学者求解答

解决方案 »

  1.   

    this指代当前对象,你new一个对象出来,用引用来操作,再内部用this操作。如果你的成员变量和方法参数不相同可以不用加this
      

  2.   

    在java里这叫做封装,get方法就是为了外部类读取该类中的私有属性值。
    this是当前对象指针,每一个实例化的对象都会有一个this指针指向对象自己所在的堆内存区域。this.x是明确告诉jvm去访问类的成员变量x,如果仅仅是x的话,会优先访问方法中声明为x的变量,如果方法中没有声明变量x,jvm才会访问成员变量x,这是变量的作用域问题。
    比如下面这个例子:
    private int age;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    在这段java代码中,setAge中给成员变量age赋值必须加上this,否则jvm会认为这个变量是setAge方法的入参。即setAge方法内部的变量age(形参也属于方法内部的局部变量)和全局变量age同名时,在setAge方法中直接访问age时,访问到的形参age,而非全局变量private int age。如果要访问同名的全局变量age,则需要加上this来定位到当前对象实例,然后通过.age访问对象实例的成员变量x。不知道这样说lz明白没有
      

  3.   

    这里面大家的回答都很准确,set就是让外界设置.get就是让外界获取.这里给你提前预告一些知识点.等你学了java的反射机制.什么私有化都不好使.任何的私有化的内容,即使是在底层代码隐藏的方法全部都可以获取.并且不通过get set方法
      

  4.   

    一般来说,这是一种设计规范,属于面向对象思想的一种设计理念。
    一个对象的属性一般都会设置为私有,然后使用get或者set方法来设置或者获取。
    就好比一个对象代表你的家,对象的属性代表你家里面的东西,如果别人要给你东西或者你给别人东西,都要通过门进入家里面来给,或者通过你这个主人,这就好比get和set方法,而不是直接把东西放到你家里面,因为家里面的东西是隐私的。
    而且很多时候传入给某个属性的值是需要通过处理的,而不能直接就把某个属性给改掉,传入的值可能需要进行校验,传出的值可能需要格式化等等,这些逻辑就需要写入在get或者set方法里面。
      

  5.   

    this就是这个类的对象可以简单理解为这个类this.变量名这个变量一定是成员变量
    与同名局部变量相区分