我的主班有两个班(我们称它们为classA和classB)。
有没有机会在 classB 中设置 classA 变量?
像这样的东西:
class classB {
int indexB;
classB() {
indexB = 0;
classA.index = indexB;
}
}
非常感谢!问候
是的,您可以像在代码段中那样直接分配public
变量,或者为变量classA
声明一个设置器。-private
A类
public setIndex(int index) {
this.index = index;
}
B类
classAInstance.setIndex(indexB);
对的,这是可能的。假设index
该类classA
也是包保护的,并且classA
在同一个包中,classB
那么您可以执行以下操作:
class classA {
int index;
classA() {}
// OR
classA(int index) {
this.index = index;
}
}
class classB {
int indexB;
classA classA;
classB() {
indexB = 0;
classA = new classA();
classA.index = indexB;
// OR
classA = new classA(indexB);
}
}
如果这两个类都在不同的包中,那么你需要一个公共设置器index
,classA
如 ssantos 所示(我展示的第二种方法,使用构造函数,在这种情况下也可以工作,因为构造函数是公共的)。
然而,直接访问其他类的成员并不是很好。请为此使用 getter 和 setter,还请考虑 java 命名约定:类应以大写字母开头,因此ClassA
and ClassB
。
索引必须是 A 类的静态变量。然后你可以这样做。