code学习

JAVA 的this用法

public class Student {
    private String name;
    private int age;

//    public void setName(String n) {
//        name = n;
//    }

    public void setName(String name) {
//        name = name;
        this.name = name;
    }
           

当形参与成员变量名称相同时,不能直接写name=name,他是访问最近的形参,

对成员变量无影响,还是默认的null值。

此时需要加上this.name访问成员变量,代表当前对象的name变量

this修饰的变量指代成员变量

使用this是解决局部变量隐藏成员变量

this代表所在类的对象引用

(方法被哪个对象调用,this就是代表哪个对象,this.name就是指向那个对象的成员属性)

内存原理:

执行方法的时候在栈内方法区寻找有无对应名称的变量,结果发现有,就直接使用,若是没有就到main对应的成员变量查找。

JAVA 的this用法

在栈内对应方法区,保存有this属性指向方法的调用对象,在main方法区找到对象对应的变量s2,

进而找到该对象的成员变量进行相应操作

(setname方法区属性this值是仅有对象名称,还是还有对象地址?我暂不确定)

JAVA 的this用法

继续阅读