使用 toString() 方法练习

Exercise with toString() method

我是 Java 的新手,我有一个可能很简单的问题。

我有这个代码:

public class Person {
    String name;
    int age;
    boolean isMan;

    Person(String nameParam,int ageParam,boolean isManParam) {
        this.name = nameParam;
        this.age = ageParam;
        this.isMan = isManParam;
    }
}

在另一个 demoClass 中,我初始化了 class 人的对象:

public class toStringDemo {
    public static void main(String[] args) {
       Person human = new Person("Jack",28,true);
    }
}

我的任务是使用 toString() 方法编写一个 showPersonInfo() 方法,以便 显示初始化对象的所有三个字段..有帮助吗?

每个 Java class 始终存在 toString 方法。但是,如果您不覆盖它以指定要 return 的内容,它将默认 return "class 名称,然后是 'at' 符号,最后是 hashCode ”,类似于 Person@19821f。更多信息 here.

所以你应该像这样覆盖 Person 中的 toString 方法(一定要改变结果 String 的味道):

@Override
public String toString() {
      String s = name +", age "+age+", isMan: "+isMan;
      return s;
}

然后要显示它,创建 showPersonInfo 方法:

public void showPersonInfo(){

   System.out.println(this.toString()); // OR
   // System.out.println(this); // Java prints the toString method by default

}
public class Person {

String name;
int age;
boolean isMan;


Person(String nameParam,int ageParam,boolean isManParam){
    this.name = nameParam;
    this.age = ageParam;
    this.isMan = isManParam;
     }
}

@Override
public String toString() {
    return "name:" + this.name + ", age:" + this.age + ", isMan:" + this.isMan ;
}

public void showPersonInfo {
    System.out.println(toString());
}
public class Person {
    String name;
    int age;
    boolean isMan;

    Person(String nameParam,int ageParam,boolean isManParam) {
        this.name = nameParam;
        this.age = ageParam;
        this.isMan = isManParam;
    }

    @Override
    public String toString() {
        return "Name: " + this.name +
               "\nAge: " + this.age +
               "\nIs a Man?: " + this.isMan;
    }

    public String showPersonInfo() {
        return this.toString();
    }
}

在你的主要方法中:

public class toStringDemo {
    public static void main(String[] args) {
        Person human = new Person("Jack",28,true);

        System.out.println(human.showPersonInfo());
    }
}