0

我创建了 Person 类,它由 Student 和 Employee 类扩展(由其他 Employee 类型类扩展)。人员类如下所示:

String name;
 int ssn;
 int age;
 String gender;
 String address;
 String PNumber;
 static int count;

//empty constructor
public Person(){
    count++;
}

//print count
public static void printCount(){
    System.out.println("The number of people is: "+ count);
}

//constructor with name
public Person(String name){
    this.name = name;
    count++;
}

/*constructor to create default person object*/
public Person(String name, int ssn, int age, String gender, String address, String PNumber)
{

    this.name = name;
    this.ssn = ssn;
    this.age = age;
    this.gender = gender;
    this.address = address;
    this.PNumber = PNumber;
    count++;
}

我目前正在尝试创建一种方法,如果他们是性别 =“男性”,它将显示所有人员。我有:

//display Males
public void print(String gender){ 
    if(this.gender.contentEquals(gender)){
        //print out person objects that meet this if statement
    }
}

我不确定如何在方法中引用对象(学生和员工都是人)来返回它们。而且我也不知道如何在main方法中引用这个方法。我不能使用 Person.print,但如果我使用

Person james = new Person(); 

然后使用

james.print("Males"); 

我只返回詹姆斯(并且该方法在这种情况下没有意义)。

任何帮助表示赞赏。

4

1 回答 1

1

首先要把print方法做成静态方法。它独立于每个单独的 Person 对象,因此将其设为静态将允许您在 main 方法中将其调用为

Person.print("Male");

要在 print 方法中引用 Person 对象,您需要将 Person 对象的集合作为参数传递给它。您应该将 Person 的所有实例保存在一个数组中,并在调用它时将其传递给 print 方法。那么打印方法就可以了

public static void print(String gender, Person[] people) {
    for(Person x : people)
        if (x.gender.equals(gender))
            //print the person
}

通过此修改,您应该从 main 方法调用它

Person.print("Male", people);

people 是保存所有 Person 对象的数组。

于 2013-02-13T01:29:14.323 回答