gpt4 book ai didi

java - 将一个类的实例变量设置为另一个类的实例变量和

转载 作者:行者123 更新时间:2023-11-30 08:14:31 25 4
gpt4 key购买 nike

有没有办法将一个类的实例变量设置为另一个类的实例变量,当第二个类的实例变量发生变化时,第一个类的实例变量也随之变化,然后再创建对象任何一类?这是我的狗类:

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。有没有办法让它在你创建对象之前,Dog 类中的实例变量“size”自动设置为 Cat 类中的实例变量“size”?基本上,如果 Cat 类中的实例变量“size”设置为 20,我希望我从 Dog 类中创建的每个对象的实例变量“size”也设置为 20。我希望我的解释不是太过分令人困惑。哦,还有,我知道你可以用继承来做到这一点,但我实际使用的类已经继承了另一个类,所以我不能使用那个方法。如果有人知道任何其他方法,请告诉我。谢谢。

最佳答案

我无法理解你的意思,但我想我知道你在说什么。

每次 Cat 的“size”变量改变时,改变每只 Dog 的“size”变量。如果是这种情况,请使用一个列表来存储您的 Cat 类可以访问的所有 Dog 实例。

// 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 列表中。

-或者-

按照人们在评论中所说的,使用 static 成员,而不是 instance 成员。

关于java - 将一个类的实例变量设置为另一个类的实例变量和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com