private int a 变量会不会在一个类的内部类或者继承类中值发生变化
如果 private int a
变量是一个实例变量,那么在该类的内部类或者继承类中访问该变量时,值会发生变化。因为实例变量属于类的一个对象,不同的对象之间是相互独立的,它们的属性值也是各自独立的。
例如,假设有如下代码:
public class A {
private int a = 0;
public void test() {
B b = new B();
b.changeA();
System.out.println("a=" + a);
}
public class B {
public void changeA() {
a = 10;
}
}
}
在这个例子中,类 A
包含一个私有变量 a
和一个公有方法 test()
,方法内创建了一个内部类 B
的实例 b
,然后调用它的 changeA()
方法来修改 a
的值,并在最后输出 a
的值。
如果运行上述代码,输出结果将为 “a=10”,说明在内部类 B
中修改了 a
的值,并且对外部类 A
实例的属性值产生了影响。
需要注意的是,如果 private int a
变量是一个静态变量,则在内部类或者继承类中访问该变量时,直接使用类名来引用即可,如 A.a = 10
,此时所有对象共享该静态变量的值,修改一处将会影响到所有对象的属性值。