我需要实现一个方法,该方法接受一个名为applicants的数组,以及一个名为Person的单独类中的两个实例,并打印出年龄介于22和30之间的那些申请人的名字。 Person类有getName()和getAge()方法,它们返回申请人的姓名和年龄。换句话说,类Person声明如下:
public class Person{
public String getName(String name) {
return name;
}
public int getAge(int age){
return age;
}
}
这是我的主要方法:
public class Applicants
{
public static void main(String args[]){
String [] name = new String[8];
name[0] = "Student A";
name[1] = "Student B";
name[2] = "Student C";
name[3] = "Student D";
name[4] = "Student E";
name[5] = "Student F";
name[6] = "Student G";
name[7] = "Student H";
int [] age = new int[8];
age[0] = 21;
age[1] = 28;
age[2] = 16;
age[3] = 23;
age[4] = 22;
age[5] = 28;
age[6] = 22;
age[7] = 21;
}
public static void printSelection(Person applicants[]) {
for (int i = 0; i < applicants.length; i++)
if (22 <= applicants[i].getAge() && applicants[i].getAge() <= 30)
System.out.println(applicants[i].getName());
}
}
我知道我还没有准备一个名为申请人的阵列(尚未)。我不知道我怎么能基本上把这两个数组称为名称和年龄,并使一个数组称为申请人? 或者我只是将数组名称转换为申请人? 这是一个课堂会议,所以请原谅我的错误。我只需要了解专业人士如何做这类事情,以便我可以从中学习并继续前进。
需要最终输出才能打印出22到30之间的申请人姓名和年龄。必须从单独的类中调用getName和getAge,如下所示。
答案 0 :(得分:3)
首先,不需要两个数组。您只需创建Person类型的对象实例。
public class Person{
public String getName(String name) {
// Why would the user pass a value they want returned right back to them?
return name;
}
public int getAge(int age){
// Same here as well. This needs to be addressed!
return age;
}
}
首先这段代码不起作用。班级中没有字段名称和字段年龄。这是你要解决的第一个问题。您还需要为此类创建一个构造函数,它将name和age作为参数,并将它们绑定到您定义的字段。即:
public Person(int age, String name)
{
this.age = age;
this.name = name;
}
下一步是将值添加到person对象,然后将该person对象添加到集合(如数组或arraylist)。在您的main方法中,您可能会有类似的东西。
Person[] applicants = new Person[8];
现在,您应该使用相关数据将Person对象的新实例添加到此集合中。
将此数组传递给您的函数,您将打印出所选的值。