public String toString():返回该对象的字符串表示。
Integer类下的一个静态方法:
public static String toHexString(int i):把一个整数转成一个十六进制表示的字符串
这个信息是没有任何意义的。所以,建议所有子类都重写该方法。
怎么重写呢?
把该类的所有成员变量值组成返回即可。
重写的最终版方案: 就是自动生成toString()方法。从source里面直接生成
注意:
直接输出一个对象的名称,其实就是调用该对象的toString()方法。
同个包中创建2个类:
第一个:
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 "Student [name=" + name + ", age=" + age + "]";
}
// 重写to.String方法,快捷方式:右键 → Source → 点击有to String()
//调用出自己想要得到的字符串信息.到时候直接用System.out.println(s.toString());
// @Override
// public String toString() {
// return super.toString();
// return "hello";
// return "姓名:" + name + ",年龄:" + age;
// } }
第二个:
public class StudentDemo {
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());// cn.itcast_02.Student@42552c
System.out.println("--------------------");
// toString()方法的值等价于它
// getClass().getName() + '@' + Integer.toHexString(hashCode())
// this.getClass().getName()+'@'+Integer.toHexString(this.hashCode()) // cn.itcast_02.Student@42552c
// cn.itcast_02.Student@42552c System.out.println(s.getClass().getName() + '@'
+ Integer.toHexString(s.hashCode())); System.out.println(s.toString());//Student [name=null, age=0] 重写了 // 直接输出对象的名称
System.out.println(s);//Student [name=null, age=0] 重写了 }
}