toString方法

toString方法通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法,当然如果是String类型,也是调用了toString(),只是调用了没有起到任何作用。 java的根类: Object public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 通常情况下,我们可以根据自己的需要重写toString()方法。比如,一个班级,我们的老师都是唯一的,我们希望在任何地方打印老师这个对象都可以直接打印出老师的姓名出来。如下代码
class TostrStudent { private static String Teacher; private static String Stu; private static int ID; String getTeacher() { return Teacher; } TostrStudent(String teacher){ Teacher=teacher; } TostrStudent(String stu,int id){ Stu=stu; ID=id; } String prStudent() { return "学生 "+Stu+" 的学号是:"+ID; } public String toString(){ return "班级的班主任是 "+TostrStudent.Teacher; } 下面我们的主类 public class Tostr { public static void main(String[] args) { TostrStudent tss; // TODO 自动生成的方法存根 tss=new TostrStudent("张老师"); tss=new TostrStudent("王晓明",1); tss.getTeacher(); System.out.println(tss.prStudent()); System.out.println("测试".toString()); System.out.println(tss.toString()); System.out.println(tss); } }
我们依次得到的结果是 学生 王晓明 的学号是:1 测试 班级的班主任是 张老师 班级的班主任是 张老师 第二个结果,我们加上toString()与不加上toString(),这里的toString()是我们自己写的,其结果都是一样的。第三个和第四个,调用了我们自己写的toString()方法。其结果仍然是一样的。 此外,在类TostrStudent中,我们使用了两个签名不一样的构造函数。TostrStudent(String teacher)和TostrStudent(String stu,int id)

爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img