Недавно меня попросили переписать класс, использующий наследование, в класс, использующий композицию. Я столкнулся с проблемой, когда переписывал метод toString(); метод toString() не возвращал строковое значение, и я не получал ошибок времени выполнения или ошибок компиляции. В итоге я изменил возвращаемое значение на void и имя метода для вывода. поэтому вместо того, чтобы возвращать строковое значение, я использовал system.out
моя попытка использовать toString
public String toString()
{
return String.format(
"%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n%s: %.2f\n%s: %.2f",
"based-salaried commission employee", cEmp.getFirstName(), cEmp.getLastName(),
"social security number", cEmp.getSocialSecurityNumber(),
"gross sales", cEmp.getGrossSales(),
"commission rate", cEmp.getCommissionRate(),
"base salary",baseSalary,
"earnings", earnings());
}
с чем я договорился
public void outPut()
{
System.out.printf(
"%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n%s: %.2f\n%s: %.2f",
"based-salaried commission employee", cEmp.getFirstName(), cEmp.getLastName(),
"social security number", cEmp.getSocialSecurityNumber(),
"gross sales", cEmp.getGrossSales(),
"commission rate", cEmp.getCommissionRate(),
"base salary",baseSalary,
"earnings", earnings());
}
Мой вопрос заключается в том, почему я не получаю ошибку компиляции или времени выполнения от javac, когда использую метод toString(), и почему он не возвращает строковое значение, если ошибки нет.
надеюсь, что это не слишком странный вопрос.
public void outPut()
заpublic String toString()
? Не совсем понятно. - person Bhesh Gurung   schedule 04.11.2011