详解每个类中toString()方法

来源:互联网 发布:淘宝联盟查看pid 编辑:程序博客网 时间:2024/06/07 16:14

在我们定义一个类的时候都会创建一个String 类型的toString()方法那么这个方法真正的作用及原理,为什么在输出类变量的时候会输出toString()的返回值

1我们定义的类默认的父类是Object类型,请看下面的源代码

 public void println(Object x)

 {
        String s = String.valueOf(x);
        synchronized (this)

 {
            print(s);
            newLine();

}

}

详解:当我们把一个有指向对象的类变量给Object类型的变量,因为Object是父类变量所以x指向子类中拥有父类的方法,(多态方法)

2下面请看valueOf(x)方法的源代码

public static String valueOf(Object obj) 

{
        return (obj == null) ? "null" : obj.toString();
  

  }

详解:当我们把x给obj的时候obj会得x所指向的对象,并判断当前所指向的对象是否为空,如果不为空将返回当前对象的toString()类型,也就是子类中的toString 类型

3.下面我们看以下toString()方法的源代码

public String toString() 

{
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

//toString()方法是Object类中的一个方法,返回的是ss.链表@154283a

//当前类的名字和@还有一串字符串,至于字符串的产生原因这里的就不叙述了因为我们主要说的事toString();

4.总上所述,在一个类中定义一个toString的方法实际上为了不用通过类变量调用方法来达到显示值。

3 0