2013-07-30 257 views
-2

如何從(類)Person類型的arrayList中獲取第二個對象並將方法應用於該特定對象?ArrayList內的對象更新

ArrayList<Person> person = new ArrayList<Person>(); 

例如,我在Person類中有一個名爲hasBirthday()的方法,它將一年添加到對象人,但它僅適用於創建的第二個對象。這是爲了顯示生日快樂的消息,並且一旦從控制檯創建第二個對象就添加一年。所有我們喜歡生日後;)

+0

你能發佈你的代碼嗎? –

+3

你的意思是「它僅適用於第二個創建的對象」? (我質疑設計'hasBirthday'方法的智慧,它也會改變狀態......聽起來像它只是*檢查*某事並返回答案。) –

+0

如果數組中有第二個對象,方法hasBirthday將被調用並且將該對象更新一年(年齡)並提供消息以讓用戶知道這些變化。是或多或少地給出第二個對象的程序的答案,並且通知用戶這些變化。 – Sun

回答

1

我相信你的意思是這樣的:

person.get(1).hasBirthday(); 

,將調用在列表中的第二個對象上hasBirthday方法(如果存在的話)。

+0

太棒了!我接近person.get(1),讓我試試其餘的來看看我如何管理。謝謝! – Sun

+0

是的,它的工作原理!再次感謝! – Sun

+1

很高興這很好。下次我鼓勵你只搜索你需要幫助的結構/方法,比如「java arraylist」。 Java的文檔非常豐富,幾乎總是有用的。 – 3yakuya

0
ArrayList<Person> person = new ArrayList<Person>(); 
person.add(new Person(someParam1)); 
person.add(new Person(someParam2)); 
person.add(new Person(someParam3)); 

if (person.size() >= 2) { 
    Person secondPerson = person.get(1); 
    secondPerson.hasBirthday(); 
} 
+0

事情是,用戶將從控制檯添加信息,數組將自行更新信息。最後一部分是我一直在尋找的。感謝你的回答! – Sun

0

這裏做一個安全的方式:

if(person.size() >1 && person.get(1) != null){ 
    person.get(1).hasBirthday(); 
} 

此檢查List是適當的長度,並且該索引的值不爲空。

我想你hasBirthday方法重命名爲類似increaseAge或二傳手分配時代,像setAge如果年齡是你允許進行分配。描述性方法名稱很有用。

+0

是的,我完全同意一些改變。我正在密切遺漏.has生日的部分。感謝你的回答! – Sun