Java中重写toString方法,java重写tostring
分享于 点击 33125 次 点评:243
Java中重写toString方法,java重写tostring
类 Object 是类层次结构的根(父)类, 每个类(Person,Student...)都使用 Object 作为超(父)类,所有对象(包括数组)都实现这个类的方法,其中tostring方法,默认输出的是类名和内存地址值。
JDK中源码:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
解析:
getClass():返回一个字节码对象
Integer.toHexString():返回指定参数的十六进制字符串形式
hashCode():返回该对象的哈希码值(内部地址)
创建一个Person类(没有重写toString方法):
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
创建测试类:
public class Demo {
public static void main(String[] args) {
Person p = new Person("张三",18);
System.out.println(p.toString);// com.hxd.Person@75412c2f
System.out.println(p);//直接打印对象的名字,其实就是调用对象的toString方法
}
}
直接打印对象的地址值没有意义,需要重写Object类中的toString方法,打印对象的属性;
创建一个Person类(重写了toString方法):
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//重写toString()方法
@Override
public String toString() {
return "Person{" + "name='" + name + "',age=" + age + "}";
}
}
创建一个测试类:
public class Test {
public static void main(String[] args) {
Person p = new Person("张三",18);
System.out.println(p);// Person{name='张三',age=18}
}
}
这个时候toString输出的东西就是按照指定格式打印出Person这个类的具体内容了。
在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性,所以要重写toString()方法。
第一次写博客,略有粗糙,感谢观看。
相关文章
- 暂无相关文章
用户点评