| 
 
| 本帖最后由  赵庆礼 于 2012-7-5 11:42 编辑 
 import java.io.*;
 class Person implements Serializable
 {
 static final long serialVersionUID = 42L;
 String name;
 int age;
 Person( String name, int age )
 {
 this.name = name;
 this.age = age;
 }
 public String toString()//重写toString()方法
 {
 return name + "::" + age;
 }
 }
 
 
 import java.io.*;
 class ObjectStreamDemo
 {
 public static void main( String[] args ) throws Exception
 {
 //writeObj();
 readObj();
 }
 public static void readObj()throws Exception
 {
 ObjectInputStream sis = new ObjectInputStream( new FileInputStream( "obj.txt" ) );
 Person p = ( Person )sis.readObject();
 System.out.println( p ); //  为什么在这只是直接打印了Person对象p,而没有调用Person中的重写方法toString(),不理解
 sis.close();
 }
 public static void writeObj()throws IOException
 {
 ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream( "obj.txt" ) );//文件名一般不存为txt,存为.class格式
 oos.writeObject( new Person( "zhangsan1", 331 ) );
 oos.close();
 }
 }
 
 看了毕老师的视频,虽然知道了结果,但是还是不理解其中的道理,哪位大侠帮我再仔细讲讲,谢谢
 问题在代码中的红色字体
 
 | 
 |