从类方法显示类对象

时间:2013-02-13 01:15:58

标签: java class inheritance methods

我创建了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"); 

我只返回james(并且该方法在该上下文中没有意义)。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

首先,打印方法应该是静态方法。它独立于每个Person对象,因此将其设置为static将允许您在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对象保留在其中。