package com.donglijiedian;
class A {
int a =3;
public void test(){
a=4;
System.out.println(this.a);
};
}
class B{
public static void main(String[] args) {
A a =new A();
System.out.println(a.a);
a.test();
}
}
a.a为什么是3不是4
this.a 调用的是类中的变量,而a=4 是方法中的赋值,最后的 System.out.println(a.a); 相当于 a调用 System.out.println(this.a); this.a 当前类的int a =3; 的a.
因为是System.out.println(this.a) 不是System.out.println(a)
a.a当然是3因为你还没调用a.test()
上楼的是正解
你把这两句代码这样写,就应该是4了吧
a.test();
System.out.println(a.a);
你用类的对象a去调用类A里的变量a,得到的结果就是在类里定义的那个结果3,你在方法里给了个4,那是局部的,而且你都没调用test()方法,局部里的所有东西都不产生作用
输出a.a之前test方法没执行