我创建了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(并且该方法在该上下文中没有意义)。
任何帮助表示感谢。
答案 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对象保留在其中。