日期:2014-05-20  浏览次数:20710 次

关于System.out.println()直接输出对象的引用
import java.io.File;
import java.io.IOException;
class wan{
int age;
String name;
void print()
{ System.out.println("年龄:"+age+" 姓名:"+name);
}
public wan(int a,String b){
age=a;
name=b;
}
public static void main(String args[])
{wan a=new wan(10,"万");
a.print();
System.out.println(a);
File f1=new File("C:\\wan");
File f2=new File(f1,"UseFile.java");
System.out.println(f2);
}
}
输出结果:
wan@de6ced
C:\wan\UseFile.java
为什么会输出这两种不同形式的结果,求解释,本人菜鸟!!

------解决方案--------------------
System.out.println(obj)
 等效于
System.out.println(obj.toString());

具体输出什么,取决与实际的类定义的 toString()方法

对于默认的继承自Object类的,没有覆写toString()方法的话,Object.toString()的默认实现是

Java code

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

------解决方案--------------------
toString 方法不同
------解决方案--------------------
简单说,就是把你的
void print()
{ System.out.println("年龄:"+age+" 姓名:"+name);
}
去掉,改为
public String toString() {
return ("年龄:"+age+" 姓名:"+name;
}