Я только начал делать объектно-ориентированное программирование как часть своего курса, но я борюсь с ним, в частности метод toString в классе Person. Мне нужно написать метод toString() для отображения содержимого переменных экземпляра.Объектно-ориентированное программирование. Как использовать метод и формат toString()?
мне нужно по образцу печатать:
Person[forName=joe, surname= smith, age= 25, height= 1.57, gender= male]
мне также нужно отформатировать его, как это с помощью метода формата:
smith joe 25 1.57 male
davis sian 18 1.73 female
*** *** *** *** ***
Я нету письменного тестера еще, но вот что Я написал до сих пор для этого класса, и теперь я застрял, я даже не уверен, что неправильно интерпретирую инструкцию toString. Я использую Netbeans для этого:
public class Person
{
private String surname;
private String forname;
private int age;
private double height;
private String gender;
public String toString()
{
return getClass().getName() + "[surname= " + surname + " forname= " + forname + " age= " + age + " height= " + height + " gender " + gender + "]";
}
}
Что мне нужно сделать, это класс с именем Person, что я могу проверить. Он должен иметь возможность удерживать пять переменных выше (фамилия и т. Д.) Для разных людей. Мне нужно иметь возможность распечатывать каждую переменную экземпляра с помощью метода toString() и использовать метод format() для создания строки с информацией форматирования для форматирования строки, напечатанной методом toString() как вторая цитата.
Я нахожусь на правильном пути и независимо от того, как я могу это преодолеть?
EDIT: Я посмотрел на класс Person и сделал все, что с ним можно, это выглядит достаточно прилично? Я собираюсь попробовать вместе с PersonTester.
public class Person
{
private String surName;
private String forName;
private int age;
private double height;
private String gender;
@Override
public String toString()
{
return getClass().getName() + "[surName= " + surName + " forName= " + forName + " age= " + age + " height= " + height + " gender " + gender + "]";
}
public void format()
{
System.out.format("%10s%10s%10d%10f%10s", "surName", "forName", age, height, "gender");
}
public String getSurName()
{
return surName;
}
public String getForName()
{
return forName;
}
public int getAge()
{
return age;
}
public double getHeight()
{
return height;
}
public String getGender()
{
return gender;
}
public void setSurName(String surName)
{
this.surName = surName;
}
public void setForName(String forName)
{
this.forName = surName;
}
public void setAge(int age)
{
this.age = age;
}
public void setHeight(double height)
{
this.height = height;
}
public void setGender(String height)
{
this.gender = gender;
}
}
EDIT 2: Начало работы на класс Tester, но я снова нарваться ошибки о сеттер не имеющие; и не является заявлением.
Вот тестер до сих пор:
public class PersonTester
{
public static void main(String[] args)
{
System.out.println("PersonClassTester");
System.out.println("*****************");
System.out.println("");
Person joeSmith = new Person();
String "smith" = joeSmith.setSurName();
String "joe" = joeSmith.setForName();
int 25 = joeSmith.setAge();
double 1.57 = joeSmith.setHeight();
String "male" = joeSmith.setGender();
joeSmith.toString();
joeSmith.format();
}
}
Ваш метод toString кажется мне прав. Для форматирования проверьте это: http://docs.oracle.com/javase/tutorial/essential/io/formatting.html – Stultuske
Непонятно, что спрашивать. Можете ли вы добавить лучший пример и то, что вы программируете. – Jens
Отредактировано объяснение, если вы все еще не понимаете, о чем я говорю, я попробую и настрою его больше. – SIHB007