2013-10-13 39 views
0

我在我的主類中有兩個類(讓我們稱它們爲classA和classB)。在Java中設置另一個類的變量

有沒有機會在classB中設置classA變量?

類似的東西:

class classB { 
    int indexB; 

    classB() { 
     indexB = 0; 
     classA.index = indexB; 
    } 
} 

非常感謝你! 問候

+0

請指定語言,使用標籤並在您的問題中提及它。 – geomagas

+0

你真的是指「在你的主班」嗎?我認爲你的意思是在你的源文件中 - .java文件。你可能正在使用內部類,但這是一種更先進的技術。 –

+0

@geomanagas:'java'被標記爲問題 –

回答

1

,您可以直接分配的classApublic變量,你在你的片段一樣,或聲明制定者private variables.-

CLASSA

public setIndex(int index) { 
    this.index = index; 
} 

CLASSB

classAInstance.setIndex(indexB); 
+0

是的,但它需要是一個實例(如上面所暗示的),或者你需要聲明變量static,但這不是非常像OOP的。 –

0

是的,這是可能的。假設類classAindex也包保護,classA是在同一個包classB那麼你可以做這樣的事情:

class classA { 
    int index; 
    classA() {} 
    // OR 
    classA(int index) { 
     this.index = index; 
    } 
} 

class classB { 
    int indexB; 
    classA classA; 

    classB() { 
     indexB = 0; 

     classA = new classA(); 
     classA.index = indexB; 
     // OR 
     classA = new classA(indexB); 
    } 
} 

如果這兩個類在不同的包你,那麼你需要index公共二傳手在classA中,如ssantos所示(我已經展示的第二種方法,使用構造函數,在這種情況下它也能工作,它的構造函數是公開的)。

然而,直接訪問其他類的成員並不是很好。請爲此使用getter和setter,也請考慮java命名約定:類應以大寫字母開始,因此ClassAClassB

0

該索引必須是A類的靜態變量。然後您可以執行此操作。

相關問題