Я пытаюсь выяснить, как сделать отдельные методы toString на основе перегруженного конструктора. Возьмите ниже код, например:toString метод для перегруженного конструктора
public class Employee {
private double salary;
private String name;
public Employee(String name) {
this.name = name;
}
public Employee(String name, int salary) {
this.name = name;
this.salary = salary;
}
}
Теперь я хотел бы реализовать метод ToString, который зависит от созданного объекта и вывода соответствующих значений (то есть тот, который выводит только имя, а другой, который выводит имя. и зарплата) Нужен ли мне только один метод toString и нужно добавить инструкцию if-else?
Извините, если это глупый вопрос, я просто изучаю веревки Java.
методы не имеют никакого отношения к конструктору, который был использован для создания объекта они вызывались на. –
метод toString() должен просто отображать значение 0 для зарплаты, если используется только конструктор name. Реализация toString() НЕ должна зависеть от используемого конструктора. – camickr
В общем случае вы можете объявить класс 'enum' и частный (вероятно,' final') член класса, который указывает, какой конструктор вы использовали, и установить его в каждом конструкторе; то 'toString()' может «переключиться» на него. Это может быть слишком тяжелым решением для такой простой проблемы. – ajb