需要数组帮助 - 编码错误

时间:2013-03-03 21:05:18

标签: java arrays

我需要实现一个方法,该方法接受一个名为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,如下所示。

1 个答案:

答案 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对象的新实例添加到此集合中。

将此数组传递给您的函数,您将打印出所选的值。