gpt4 book ai didi

java - 访问数组中对象的属性

转载 作者:行者123 更新时间:2023-12-01 16:52:44 26 4
gpt4 key购买 nike

我目前正在努力完成这段代码。我正在复习明天的考试,所以任何帮助都是很好的!

有关操作的说明位于代码的注释中。

我不确定我在这段代码中所做的任何事情是否诚实有效。我目前的主要问题是弄清楚如何计算这 10 个人的总和。你们能帮忙吗?

package Fall15Test3;
import java.util.*;

public class Person {
String name;
int age;



public Person(String name, int age) {

}

public void setName(String name) {

}

public String getName() {
return name;
}

public void setAge(int age) {

}

public int getAge() {
return age;
}

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//Create the array of 10 Person objects.
Person[] personArray = new Person[10];

//Initialize the array of persons using user's inputs.
for (int i = 0; i < personArray.length; i++) {
System.out.print("Please input name: ");
String name = input.nextLine();
System.out.print("Please input age: ");
int age = input.nextInt();
personArray[i] = new Person(name, age);
}

//Calculate the sum of the ages of the 10 people.
int ageTotal = 0;
for (int i = 0; i < personArray.length; i++) {
ageTotal += WHAT DO I PUT HERE;
}
System.out.println(ageTotal);
}
}

最佳答案

当循环数组时,可以在循环中的每个索引处访问数组中的对象,并且可以调用对象类型的方法,而无需获取对该对象的额外引用。因此,您可以这样做:

ageTotal += personArray[i].getAge();

这种方法只是直接获取对象,因为 personArrayPerson 对象的数组。

您还可以执行类似以下操作,这将显式获取对数组中指定索引处的对象的引用:

for (int i = 0; i < personArray.length; ++i) {
Person p = personArray[i]; // Make clear we are obtaining the object
ageTotal += p.getAge(); // get the age set in the Person "p" object
}

编辑:根据一些评论进行更新

您可以使用不同形式的 for 循环:

for (Person p : personArray) {
ageTotal += p.getAge();
}

您还可以使用流方法获取总数:

int ageTotal = Arrays.stream(personArray).mapToInt(p -> p.age).sum();
System.out.println(ageTotal);

鉴于示例的具体情况,您可以简单地在输入循环中累加ageTotal。但是,我假设拥有一个单独的循环是其他处理的一个很好的学习示例。

此外,您的 Person 示例类在许多方法(例如构造函数)中都没有设置姓名、年龄。

关于java - 访问数组中对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36706832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com