2010-11-01 4 views
1

Привет Я новичок в программировании на Java. У меня есть переменная экземпляра в классе, который я должен позвонить другому class.It не должен быть статичным согласно requirements.The код, указанный ниже ## `Вызов одной переменной класса в другом классе?

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»вектор в другой класс, не делая его как статичным. Как я могу передать это значение. Может кто-нибудь мне помочь. Любые предложения оценили.

+0

Есть ли способ в другом классе принять «вектор» в качестве аргумента? Пожалуйста, уточните, что вам нужно делать. – brumScouse

+0

Если это домашняя работа, вы должны пометить ее как таковую, но, как быстрый домашний ответ, вы создали сеттеры и геттеры для двух других переменных, почему бы не просто сделать то же самое для totalCards? –

ответ

1

Немного непонятно, какова ваша проблема, но сначала вам нужно иметь экземпляр Карты. Затем TotalCards Vector будет жить в этом объекте Card.

Card myCards = new Card(); 

Теперь объект, который имеет доступ к myCards может получить доступ к Vector с:

myCards.totalCards 

Однако, это считается лучшей практикой многих сделать totalCards приватным и сделать поглотитель для него:

myCards.getTotalCards(); 
+0

Спасибо, Майкл отлично работает. – MuraliN

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(); 
    } 
} 

Кстати: Это рассматривается как плохой стиль для доступа к свойствам других классов непосредственно - пытается использовать сеттер и добытчик:

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 
} 
Смежные вопросы