有没有办法将一个类的实例变量设置为另一个类的实例变量,当第二个类的实例变量发生变化时,第一个类的实例变量也会随之变化两个班级?这是我的狗课:
public class Dog {
int size;
Dog(int size) {
this.size = size;
}
public static void main(String args[]) {
Cat cat = new Cat();
Dog dog = new Dog(cat.size);
System.out.println(dog.size);
cat.size = 17;
dog.size = cat.size;
System.out.println(dog.size);
}
}
这是我的Cat课程:
public class Cat {
int size = 5;
}
正如您所看到的,我必须从两个对象中创建对象以将dog.size设置为cat.size。有没有办法让它在制作对象之前,实例变量' size'在Dog类中自动设置为实例变量' size'在猫班?基本上,如果实例变量' size'在Cat类中设置为20,我想要实例变量' size'我用Dog类创建的每个对象也设置为20.我希望我的解释不会太混乱。哦,而且,我知道你可以通过继承来做到这一点,但我实际使用的类已经继承了另一个类,所以我无法使用该方法。如果有人知道任何其他方法,请告诉我。谢谢。
答案 0 :(得分:3)
我无法理解你的意思,但我想我知道你在说什么。
每次Cat's 'size' variable is changed, change every Dog's 'size' variable
。如果是这种情况,请使用列表存储Dog
类可以访问的所有Cat
个实例。
// from java.util package.
List<Dog> dogs = new ArrayList<>();
在Cat
课程中,您需要一种方法来处理这两件事:
public void setSize(int size) {
// Set cat's size to size,
// Get your java.util.List of dogs,
// loop through them, and set each of their
// size to the new size as well.
}
另请注意,每次创建Dog
时,都需要将其添加到dogs
列表中。
-Or -
根据评论中人们的说法,使用static
成员,而不是instance
成员。