#java
Вопрос:
Помимо метода get и set, я создал метод под названием printAllDetails с целью распечатки сведений о каждом владельце регистрации. Есть 3 участника регистрации, каждый из которых имеет соответствующие имена и возраст.
public class BASIC_GettersSetters {
String name;
int age;
public static void main(String[] args) {
BASIC_GettersSetters a = new BASIC_GettersSetters(); // Assume BASIC_GettersSetters is Account
a.setName("Kim Hyun Jin");
a.setAge(32);
System.out.println(a.getName());
System.out.println(a.getAge());
a.setName("Kang Jeon Il");
a.setAge(32);
System.out.println(a.getName());
System.out.println(a.getAge());
a.setName("Choi Jin Woo");
a.setAge(30);
System.out.println(a.getName());
System.out.println(a.getAge());
a.printAllDetails();
}
Метод находится в самом низу. Когда я нажал клавишу F6, чтобы запустить программу, она показывает только последнего владельца регистрации; Чхве Чжин Ву, 30 лет. Так что я прямо здесь в замешательстве. Должен ли я использовать массив? Но тогда, как мне применить его вместе с методами get и set? Или мне следует использовать что-то еще, о чем я не знаю?
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public void printAllDetails () {
System.out.println("Registrants : " getName() " // " getAge());
}
}
Любая помощь будет признательна. Спасибо. — Кодирующий нуб
Комментарии:
1.Вы создаете только один
BASIC_GettersSetters
экземпляр, имя и возраст которого постоянно меняете.2. вы в основном переназначаете значения, используете arraylist или что-то подобное, а затем добавляете к нему значения
3. Чтобы создать 3 владельца регистрации, создайте 3 объекта (таким образом, три раза
new BASIC_GettersSetters()
)4. Но вам также нужно будет вызвать
Ответ №1:
Вы создаете один экземпляр BASIC_GettersSetters
и неоднократно меняете значения. Поэтому, когда вы звоните printAllDetails
, он печатает последний набор значений.
Вы хотите создать отдельные экземпляры:
BASIC_GettersSetters a = new BASIC_GettersSetters();
a.setName("Kim Hyun Jin");
a.setAge(32);
System.out.println(a.getName());
System.out.println(a.getAge());
BASIC_GettersSetters b = new BASIC_GettersSetters();
b.setName("Kang Jeon Il");
b.setAge(32);
System.out.println(b.getName());
System.out.println(b.getAge());
BASIC_GettersSetters c = new BASIC_GettersSetters();
c.setName("Choi Jin Woo");
c.setAge(30);
System.out.println(c.getName());
System.out.println(c.getAge());
a.printAllDetails();
b.printAllDetails();
c.printAllDetails();
Вам также следует подумать о переименовании BASIC_GettersSetters()
во что-то более значимое.
Комментарии:
1. Понял. Поэтому мне нужно создать отдельные экземпляры, чтобы отслеживать владельцев регистраций в этом случае. Спасибо 🙏
Ответ №2:
Вы создаете только один объект ( new BASIC_GettersSetters()
). Если вы вызываете сеттер для одного и того же объекта несколько раз, вы перезаписываете ранее установленное значение.
Во-первых, вы должны правильно называть свои классы. Я предлагаю переименовать вас BASIC_GettersSetters
в Registrant
. Во-вторых, вы должны создать столько Registrant
объектов, сколько необходимо (в вашем случае три).