Я создал класс Person, который расширен классами Student и Employee (который расширен другими классами типа Employee). Класс person выглядит так:
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
}
}
Я не уверен, как ссылаться на объекты (студенты и сотрудники, которые все являются людьми) в методе, чтобы вернуть их. И я также не знаю, как ссылаться на этот метод в основном методе. Я не могу использовать Person.print, но если я использую
Person james = new Person();
А затем используйте
james.print("Males");
Я возвращаю только Джеймса (и этот метод не имеет смысла в этом контексте).
Любая помощь оценили.
1 ответ
Во-первых, метод печати должен быть преобразован в статический метод. Он не зависит от каждого отдельного объекта Person, поэтому сделав его статическим, вы сможете вызывать его в основном методе как
Person.print("Male");
Чтобы ссылаться на объекты Person в методе печати, вам необходимо передать ему коллекцию объектов Person в качестве параметра. Вы должны сохранить все экземпляры Person в массиве и передать их в метод печати при его вызове. Тогда метод печати может быть
public static void print(String gender, Person[] people) {
for(Person x : people)
if (x.gender.equals(gender))
//print the person
}
С этой модификацией вы должны вызывать его из основного метода как
Person.print("Male", people);
Где people - это массив, в котором вы храните все объекты Person.
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.