2013-07-30 230 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