[英]Setting the instance variables of one class to the instance variables of another class and
有沒有一種方法可以將一個類的實例變量設置為另一類的實例變量,並且當第二個類的實例變量更改時,第一個類的實例變量也隨之更改,然后再使對象脫離這兩個類? 這是我的狗班:
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);
}
}
這是我的貓課:
public class Cat {
int size = 5;
}
如您所見,我必須將它們都做成對象才能將dog.size設置為cat.size。 有沒有一種方法可以使您在創建對象之前,將Dog類中的實例變量“ size”自動設置為Cat類中的實例變量“ size”? 基本上,如果Cat類中的實例變量'size'設置為20,我希望我從Dog類中制作的每個對象的實例變量'size'也都設置為20。我希望我的解釋不是太混亂。 哦,而且,我知道您可以通過繼承來做到這一點,但是我實際上使用的類已經在繼承另一個類,因此我不能使用該方法。 如果有人知道其他方法,請告訴我。 謝謝。
我很難理解您的意思,但我想我知道您在說什么。
每次Cat's 'size' variable is changed, change every Dog's 'size' variable
。 如果是這種情況,請使用列表存儲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
List中。
-要么-
遵循人們在評論中所說的話,並使用static
成員而不是instance
成員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.