簡體   English   中英

將一個類的實例變量設置為另一類的實例變量,然后

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM