/** * 关于toString()方法: * - toString()来自于sun公司提供的Object类,其作用就是将"java对象"转换成"字符串"的形式 * - Object类的toString()方法的默认实现是: * public String toString(){ * return getClass().getName() + "@" + Integer.toHexString(hashCode()); * } * 含义:调用一个Java对象的toString()方法就可以将Java对象转换成字符串来表示, * - 由于默认实现不能满足现实的业务需求,今后大多数自定义类的toString()方法都需要重写,重写规则:简单、明了符合业务需求 * * - 代码:System.out.println(引用);和System.out.println(引用.toString())具有相同的功能; */ public class toStringText { public static void main(String[] args) { MyDate t1 = new MyDate(); System.out.println(t1.toString()); //不重写toString()方法的输出结果:MyDate@b4c966a //重写toString()方法的输出结果:1970年1月1日 Student s = new Student("11111","张三"); System.out.println(s); //不重写toString()方法的输出结果:Student@4e50df2e //重写toString()方法的输出结果:学号:11111,姓名:张三 } } class MyDate{ private int year; private int month; private int day; // 无参构造 public MyDate() { this(1970,1,1); //this()的应用实例 通过当前的构造方法调用其他构造方 //这种语法只能出现在构造方法的第一行 } // 有参构造方法 public MyDate(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } // get and set public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } // 重写toString()方法 public String toString() { return (year + "年" + month + "月" + day + "日"); } } class Student{ private String no; private String name; // 有参构造 public Student(String no, String name) { this.no = no; this.name = name; } // setter and getter public String getNo() { return no; } public void setNo(String no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; } // 重写toString()方法 public String toString() { return "学号:" + no + ",姓名:" + name; } }