2010-11-01 94 views
1

嗨,我是新來的Java編程。我有一個類的實例變量,我應該叫另一個class.It不應該是靜態按照下面給出##`在另一個類中調用一個類的變量?

public class Card { 

    private String no; 
    private String text; 
    public Vector totalCards = new Vector(); 

    public String getNo() { 
     totalCards.addElement(no); 
     return no; 
    } 

    public void setNo(String no) { 
     this.no = no; 
    } 

    public String getText() { 
     totalCards.addElement(text); 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 
} 

我需要通過這個「totalCards」向量在requirements.The代碼另一個類沒有把它作爲一個static.How我可以通過這個值。可以幫助我的任何人。任何建議感激。

+0

另一個類中的方法是否需要接受「Vector」作爲參數?請更清楚你需要做什麼。 – brumScouse 2010-11-01 21:09:53

+0

如果這是家庭作業,你應該這樣做,但作爲一個快速的家庭作業回答,你爲其他兩個變量創建了setter和getters,爲什麼不爲totalCards做同樣的事情呢? – 2010-11-01 21:10:06

回答

1

這是一個有點不清楚你的問題是什麼,但你首先需要有卡的實例。然後totalCards Vector將存在於該Card對象中。

Card myCards = new Card(); 

現在訪問myCards可以訪問矢量對象:

myCards.totalCards 

然而,它被認爲是一個更好的做法被許多人用來做totalCards私人,讓一個getter它:

myCards.getTotalCards(); 
+0

謝謝Micheal它工作正常。 – MuraliN 2010-11-01 22:09:59

0

您可以簡單地將totalCards引用傳遞給其他類,因爲它是公共的。告訴我們更多關於客戶類的信息謝謝。

3

因爲變量「totalCards」是公開的,所以它可以通過卡片的一個實例直接訪問。

0
public class Card { 
    private String no; 
    private String text; 
    /* initializing totalCards here is bad, why are you doing this here? If each 
     card has a list of totalCards, consider doing this in the constructor of a 
     Card */ 
    private Vector<Card> totalCards = new Vector(); 

    public String getNo() { 
     //getters should not have side effects like addElement... 
     totalCards.addElement(no); 
     return no;   
    } 

    public Vector<Card> getCards() { 
     return totalCards; 
    } 

    public void setNo(String no) { 
     this.no = no; 
    } 

    public String getText() { 
     //getters should not have side effects like addElement... 
     totalCards.addElement(text); 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 

} 
0

其他職業需要有一個Card的實例。例如,通過創建一個新的實例:

public class TheOtherClass { 
    private Card myCard = new Card(); 

    public void doSomething() { 
     myCard.totalCards.doAnotherThing(); 
    } 
} 

順便說一句:它被認爲是不好的風格直接訪問其他類的屬性 - 嘗試使用getter和setter方法:

public class Card { 
    private Vector<Card> totalCards = new Vector(); 
    public void getTotalCards() { 
     return totalCards; 
    } 
} 
1

您只需編寫您的課程:

public class AnotherClass 
{ 
    public Class obj1 = new Class(); 


public String getNo() 
{ 
    Vector v1 = obj1.totalCards; 
    return v1; //or what do you want 
} 
相關問題