当前位置: 代码迷 >> J2SE >> 关于System.out.println()直接输出对象的摘引
  详细解决方案

关于System.out.println()直接输出对象的摘引

热度:108   发布时间:2016-04-24 00:43:37.0
关于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;
}
  相关解决方案