在很多时候,我们需要重写类中的toString方法,重写之后,对象的信息可以很方便的显示出来。
比如下面这段代码:
package Test;
public class Student
{
public String name;
public String id;
public boolean sex;
public Student()
{
}
public Student(String name, String id, boolean sex)
{
this.name = name;
this.id = id;
this.sex = sex;
}
@Override
public String toString()
{
String s = "姓名:"+name+" id:"+id;
if(sex)
{
s = s +" 男";
}
else
{
s = s +" 女";
}
return s;
}
}
package Test;
public class Hello
{
public static void main(String[] args)
{
Student stu = new Student();
stu.name = "xiaozhang";
stu.id ="2374835";
stu.sex = true;
System.out.println("学生信息:"+stu);
}
}
运行结果: 学生信息:姓名:xiaozhang id:2374835 男
(在toString方法中的输出)
但是如果没有重写toString方法,则
System.out.println(“学生信息:”+stu);
输出的结果是:学生信息:Test.Student@2a139a55
System.out.println("学生信息:"+stu);
这里的stu,在toString方法被重写了之后,相当于stu.toString()
System.out.println("学生信息:"+stu.toString());
这两条输出是等价的,只不过我们在这种情况下,经常省略toString