在Java中,直接将类的对象使用system.out.println输出,其中输出的类的具体名和后面的一串字符,
package com.neusoft.wangx; public class MyClass { public static void main(String[] args) { MyClass2 myClass2 =new MyClass2(); System.out.println(myClass2.toString()); } } class MyClass2{ public void print(){ System.out.println("hello"); } } 输出结果为:com.neusoft.wangx.MyClass2@164f1d0d 就是后面这个@164f1d0d @和后面的字符串分别代表啥呢? 因为直接输出一个类的对象的时候,会调用这个类的toString()方法,这个方法有些类是覆盖了的,比如String,Integer。 你自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样 的getClass().getName() + "@" + Integer.toHexString(hashCode()) 后面跟的是这个类的哈希码, 如果你希望这个类打印出来输出你希望的格式,你就要覆盖这个、toString方法。