我们在编写类的时候都知道,有equals方法,toString方法,hashCode方法,clone方法,getClass方法,在今后的一段时间我会一点一点的把这些方法逐个刨析清楚。
toString()
toString()方法是基类Object的方法,其实我们每天的工作都在使用他,比如我们现在需要打印一个String类型变量i的值,
自然我们就会想到使用System.out.println(i);此时的i其实就是i.toString()他会自动调用toString方法将i转换成为String类型,再打印。
当我们想打印一个对象的时候,也许就不如我们所愿了,比如有一个Students类,当我们使用System.out.println(Students);方法想打印Stends的信息时打印出来的就是我们看不懂的东西了,这是因为我们的Students类没有覆盖Object类的toString方法,我们写一个就行了
public String toString()
{
return getClass().getName() + "学员名称" + name + "学员年龄" + age;
}
这样我们再使用System.out.println(Students);的时候就会打印出我们需要的信息了。
深入一下,如果我们现在有一个类继承了Students,比如 class Pupil extends Students 在Pupil类中又增加了一个int类型的变量id
那么我们Pupil类的toString方法该怎么写呢?
这时我们只要在Pupil类中重写toString方法,在其中增加一些信息就行了,
public String toString()
{
return super.toString() + "学员编号" + id;
}
再使用System.out.println(Pupil);打印小学生的信息,就得到了我们想要的结果了,其实在实际开发中toString方法自己编写这个方法非常有用,他能够很清楚的显示出类的内容和信息。
public class TestgetClass
{
private int id;
private String name;
public TestgetClass(int id,String name)
{
this.id = id;
this.name = name;
}
public String toString()
{
return getClass().getName() + " 学员编号 " +this.id + " 学员姓名 " + this.name;
}
public static void main(String[] args)
{
System.out.print(new TestgetClass(15,"刘翔"));
}
}