区分局部变量和成员变量
eg:
public class Student{ private int age; public void method(){ int age = 10; System.out.println(age);//10 System.out.println(this.age);//0使用this.可以直接使用成员变量的age } }
代表所在方法调用者的地址值
代表所在方法调用者的地址值:
此时main方法里面的调用者是s,s记录的地址值是001;this的本质是方法调用者的地址值,所以this指向的地址值是001。
解析:
等号的右边name出发了就近原则,表示setName里面形参string name里面的参数,而形参里面接收的是s1.setname里面的竹小玲,所以等号右边就是竹小玲,等号左边用this调用的name是s1指向的地址值001。该句话意思就是把竹小玲赋值给等号左边001里面的name。此时方法执行完毕,进行出栈
类中mian方法外的变量(没有上下规定,在代码中为了方便阅读,把成员变量放在最上面)
main方法里面的变量
成员变量:类中,方法外
局部变量:类中,方法里面
成员变量:有默认初始化值(一般是null和0)
局部变量:使用之前需要完成赋值
成员变量:存储在堆内存对象里面
局部变量:存储在栈内存方法里面
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的运行结束而消失
成员变量:整个类中有效
局部变量:仅在当前方法中有效