写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著
个人理解:在Java中,所有的类都默认扩展自java.lang,Object类。Object类中有几个常用的方法,其中一个为toString:
public String toString()
即所有的类都具有该方法,通过创建类的对象,可以直接调用对象的该方法。
一、
package app05;
class Matify {
}
public class tostringtest {
public static void main(String[] args) {
Matify a = new Matify();
System.out.print(a.toString());
}
}
上述代码中Matify类并没有声明toString方法,在主方法中创建了一个Matify类对象a,输出语句中直接调用a对象的toString方法,该方法的默认实现为:getClass().getName()+’@’+Integer.toHexString(hashCode())
即上述out语句输出为:类所在包名.类名@hashcode码
app05.Matify@15db9742
二、当然也可以重定义该方法:
package app05;
class Matify {
@Override//重定义
public String toString() {
return "Matify is great";
}
}
public class tostringtest {
public static void main(String[] args) {
Matify a = new Matify();
System.out.print(a.toString());
}
}
重定义后输出结果为:
Matify is great
三、当out语句中的参数直接为对象时,默认调用该对象的toString方法:
package app05;
class Matify {
@Override
public String toString() {
return "Matify is great";
}
}
public class tostringtest {
public static void main(String[] args) {
Matify a = new Matify();
System.out.print(a);
}
}
输出结果为:
Matify is great