Object类的toString方法

时间:2021-04-20 16:13:59
class Dog
{
    public String toString()
    {
        return "I'm a hot dog!";
    }
}
public class TestToString
{
    public static void main(String[] args)
    {
        Dog d = new Dog();
        System.out.println("d:"+d);//d:Dog@7852e922
        System.out.println(d);//等价于System.out.println(d.toString());
        System.out.println(d.toString());
    }
}
/*
总结:
1.toString
public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())
 
返回:
该对象的字符串表示形式。
2.构造函数与析构函数
C++中有析构函数
而java中没有
但是java的Object中的
protected void finalize()
                 throws Throwable
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。
类似与C++中的析构函数
3.java的Object类有一个构造方法,这也是为何子类的构造函数第一行代码必须是父类的构造方法的原因
Object类是java中万类的父类
这和C++中多继承不一样,Java的子类只有一个父类
4.class与Class的区别
前者是一个关键字
后者是一个类名
5.哈希码:一般是一串十六进制的数
哈希编码表:一个哈希编码值唯一的对应一个对象,通过哈希码值可以找到对象在内存中的位置
6.一般重写方法要拷贝,尤其是重写Object类的方法
7.查看官方技术文档的能力
jdk1.6.0官方文档地址:http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_zh_CN.zip


*/