-3

我需要实现一个方法,该方法采用一个名为申请人的数组,以及来自一个名为 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 必须从单独的类中调用,如下所示。

4

1 回答 1

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;
    }
 }

首先,此代码将不起作用。类中没有字段名称和字段年龄。这是你要解决的第一个问题。您还需要为这个类创建一个构造函数,它将名称和年龄作为参数,并将它们绑定到您定义的字段。IE:

public Person(int age, String name)
{
     this.age = age;
     this.name = name;
}

下一步是将值添加到人员对象,然后将该人员对象添加到集合(如数组或数组列表)。在您的主要方法中,您可能有类似..

Person[] applicants = new Person[8];

现在您应该使用相关数据将 Person 对象的新实例添加到此集合中。

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

于 2013-03-03T21:10:52.887 回答