如何引用两个 类 的实例?
How can I reference instances of two classes?
我有两个 类,比如 Class A 和 Class B。
对于Class B,它使用Class A的实例变量。
例如,在Class A:
public ClassA {
numA = 0;
characterA = 'x';
}
然后,在创建ClassB的对象时,需要用到数字和字符信息。
例如,在Class B:
public ClassB {
ClassA obj = new ClassA();
numB = obj.getNumA();
characterB = obj.getCharacterA;
}
问题是,如果我使用 setCharacterA('o' 将字符 A 更改为 'o',值(即字符 B)将不会在 ClassB 中更新。
有没有一种方法可以通过使用 ClassA 中的设置器来更新 ClassB 中的值?
您正在 ClassB
中创建 ClassA
的实例。
如果您的代码是这样的:
ClassA a = new ClassA();
ClassB b = new ClassB();
a.setCharacterA('y');
那么,ClassA
在ClassB
中的字符不会改变,因为有两个不同的实例。你需要做的是通过构造函数或一个setter在ClassB
中传递ClassA
的实例,例如:
public ClassB {
private ClassA obj;
public ClassB(ClassA obj) {
this.obj = obj;
}
}
那么您可以按如下方式使用它们:
ClassA a = new ClassA();
ClassB b = new ClassB(a);
a.setCharacterA('y');
现在,字符更改也会反映在 ClassB
中,因为您将使用相同的实例。
我有两个 类,比如 Class A 和 Class B。
对于Class B,它使用Class A的实例变量。
例如,在Class A:
public ClassA {
numA = 0;
characterA = 'x';
}
然后,在创建ClassB的对象时,需要用到数字和字符信息。
例如,在Class B:
public ClassB {
ClassA obj = new ClassA();
numB = obj.getNumA();
characterB = obj.getCharacterA;
}
问题是,如果我使用 setCharacterA('o' 将字符 A 更改为 'o',值(即字符 B)将不会在 ClassB 中更新。
有没有一种方法可以通过使用 ClassA 中的设置器来更新 ClassB 中的值?
您正在 ClassB
中创建 ClassA
的实例。
如果您的代码是这样的:
ClassA a = new ClassA();
ClassB b = new ClassB();
a.setCharacterA('y');
那么,ClassA
在ClassB
中的字符不会改变,因为有两个不同的实例。你需要做的是通过构造函数或一个setter在ClassB
中传递ClassA
的实例,例如:
public ClassB {
private ClassA obj;
public ClassB(ClassA obj) {
this.obj = obj;
}
}
那么您可以按如下方式使用它们:
ClassA a = new ClassA();
ClassB b = new ClassB(a);
a.setCharacterA('y');
现在,字符更改也会反映在 ClassB
中,因为您将使用相同的实例。