public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } // @Override // public String toString() { // // return super.toString(); // // return "hello"; // return "姓名:" + name + ",年龄:" + age; // } @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } }
/* * public String toString():返回该对象的字符串表示。 * * Integer类下的一个静态方法: * public static String toHexString(int i):把一个整数转成一个十六进制表示的字符串 * * 但是这个信息是没有任何意义的。所以,建议所有子类都重写该方法。 * 怎么重写呢? * 把该类的所有成员变量值组成返回即可。 * 重写的最终版方案就是自动生成toString()方法。 * * 注意: * 直接输出一个对象的名称,其实就是调用该对象的toString()方法。 */ public class StudentTest { public static void main(String[] args) { Student s = new Student(); System.out.println(s.hashCode()); System.out.println(s.getClass().getName()); System.out.println("--------------------"); System.out.println(s.toString()); System.out.println("--------------------"); // toString()方法的值等价于 // getClass().getName() + ‘@‘ + Integer.toHexString(hashCode()) // this.getClass().getName()+‘@‘+Integer.toHexString(this.hashCode()) System.out.println(s.getClass().getName() + ‘@‘ + Integer.toHexString(s.hashCode())); System.out.println(s.getClass().getName() + "@" + Integer.toHexString(s.hashCode())); System.out.println(s.toString()); // 直接输出对象的名称 System.out.println(s); } }
时间: 2024-10-29 19:09:49