2016-03-25 4 views
0

У меня есть accountclass, у которого есть arraylist, который содержит объекты из двух других классов. Этими классами являются «Депозиты/проверки», которые распространяются на общий класс транзакций.Печать переменных из двух объектов из двух разных классов, в Arraylist, java

родительский класс:

Transaction(Double Amount,Int transactionType,Int transactionNumber) 

//amount holds amount to be edited in the balance 

//type =1,2,3;check,deposit,or fee 

//number=number transaction in the account done. 

check extends transaction; 
super(constructor) 

deposit extends transaction 
super(constructor); 

Кроме того, что проверка имеет переменную, checknumber и депозит имеет две переменные, чек/наличные деньги, которые == сумма подлежит редактированию.

Когда программа выполнена и распечатывает резюме, мне нужно, чтобы эти объекты печатали свои переменные.

Прежде, чем я был простой arraylist.get(i).getID, if ID == (the number I want)

print=arralist.get(i).getAmount(i), что было до того, что они были разделены классы, теперь, когда они, отделенные я не могу назвать каждый объект, но как я индивидуально спросить, что объекты переменной в arraylist.

Я не могу сделать arraylist.getobject.getcasharraylist.getobject.getcheck

, потому что «geter» находится в классе депозитной, а не в классе счета, и эти члены являются частными, поэтому я не могу просто добавить их в accountclassarraylist где сидит.

Так довольно много,

как печатать переменные-члены от объектов, находящихся в ArrayList, которые имеют различные уникальные переменные.

+0

Опубликуйте свой код, а не конвертируйте его на английский. – Gendarme

ответ

0

Оператор instanceof - это то, что вы ищете. Он позволит вам узнать, к какому классу принадлежит элемент в ArrayList, а затем вы можете предпринять соответствующие действия. Вот пример:

if(ArrayList.get(i) instanceof Check) { 
    // take actions specific to checks 
    String checkNum = ArrayList.get(i).getCheckNumber(); 
} 
if(ArrayList.get(i) instanceof Deposit){ 
    //take actions specific to deposits 
    double cash = ArrayList.get(i).getCash(); 
} 
etc... 
+0

Спасибо, поэтому, если это экземпляр, можно ли затем double = arraylist.get (i) .getcheck? Проблема заключается в том, что однажды im в Jpanel, обратитесь в arraylist, им не удалось распечатать переменную объектов из метода im in. –

+0

Да, как только вы знаете, что такое экземпляр, вы можете вызывать методы, специфичные для этого экземпляра , например ArrayList.get (i) .getCheck(). Я обновлю свой пример. – NAMS

+0

Огромное вам спасибо, ive search и havent нашли хороший способ обойти его рядом с созданием нового массива и циклов, и вам нужно написать кучу большего кода. Я нахожусь на работе и думаю об этом в моей голове весь день. Попробуй, когда я вернусь домой сегодня вечером. –