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
为什么会输出这两种不同形式的结果,求解释,本人菜鸟!!
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.toString());具体输出什么,取决与实际的类定义的 toString()方法对于默认的继承自Object类的,没有覆写toString()方法的话,Object.toString()的默认实现是
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
因此,wan类的实例会打印出 wan@de6ced而File类覆写了toString()方法,返回文件的路径
public String toString() {
return getPath();
}
void print()
{ System.out.println("年龄:"+age+" 姓名:"+name);
}
去掉,改为
public String toString() {
return ("年龄:"+age+" 姓名:"+name;
}