成员变量、类变量和局部变量
如果局部变量的名字和成员变量的名字相同, 要想在该方法中使用成员变量,必须使用关键字this
class People {
String name = "类体中定义的name";
People(){
}
public void speak() {
String name = "方法中定义的name";
System.out.println(name);
System.out.println(this.name); //引用成员变量
}
}
public class TestThis {
public static void main(String[] args) {
People myPeople = new People();
myPeople.speak();
}
}
--------------
方法中定义的name
类体中定义的name
成员变量和局部变量的区别:
成员变量和类变量的区别:
class TestA {
static int a = 0; //类变量
public int b = 0; //实例变量
public void method(){
int i =0; // 局部变量
}
}
public class Test {
public static void main(String[] args) {
TestA a1 = new TestA();
TestA a2 = new TestA();
a1.a = 2;
a1.b = 5;
// a1.i = 3; //无法引用局部变量,局部变量只在声明它的方法、构造方法或者语句块中可见
System.out.println(a2.a); //结果为2
//类变量是针对所有对象的,所以a1改变a,a2的a也改变
System.out.println(a2.b); //结果为0
//实例只改变自身的,所以a1对象的b改变,不影响对象a2的b变量
}
}