请完成下列Java程序:首先建立一个类,包含2个私有成员变量,分别为int和double型,并提供公共方法setInt()和 setDouble()分别给这两个变量赋值和用toString()方法显示对象的私有成员变量的值,要求将这个类定义为Seriali

admin2009-01-15  99

问题 请完成下列Java程序:首先建立一个类,包含2个私有成员变量,分别为int和double型,并提供公共方法setInt()和 setDouble()分别给这两个变量赋值和用toString()方法显示对象的私有成员变量的值,要求将这个类定义为Serializable,再创建这个类的持久对象,将对象写入名为ex3_2.data的文件中并显示对象的2个成员变量,最后从这个文件中读取这个对象并显示对象的2个成员变量。
   注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:
      ex3_2:  i=123 d=123.456
     ex3_2:  i=123 d=123.456
     import java.io.*;
     public class ex3_2 implements Serializable {
       private int n3_2;
       private double d3_2;
       ex3_2()  {
          n3_2 = 25;
          d3_2 = 12.23;
      }
      public void setDouble(double x)  {
          d3_2 = x;
      }
      public void setInt(int x)  {
          n3_2 = x;
      }
      public String toString()  {
          return("ex3_2:  i=" + n3_2 + "d=" + d3_2);
      }
      public static void main(String[]  arg)  {
          ex3_2 e1 = new ex3_2 );
          ex3_2 e2;
          e1.setInt(123);
          e1.setDouble(123.456);
          System.out.println(e1);
          try {
           FileOutputStream fos3_2 = new FileOutputStream("ex3_2.data");
           ObjectOutputStream oos3_2 = new ObjectOutputStream(fos3_2);
             ________________;
          } catch(IOException ioe)  {
            System.out.println(ioe);
          }
          try {
            FileInputStream fis3_2 = new FileInputStream("ex3_2.data");
            ObjectInputStream ois3_2 = new ObjectInputStream(fis3_2);
             ________________;
      System.out.println(e2);
   }catch(10Exception ioe)  {
      System.out.println(ioe);
   }catch(ClassNotFoundException cnfe)  {
      System.out.println(cnfe);
    }
   }
  }

选项

答案oos3_2_writeObject(e1) e2 = (ex3_2)ois3_2.readObject()

解析 本题主要考查对象串行化的方法和可串行化类的构造方法。解题关键是熟练掌握串行化的概念和目的,熟悉串行化的方法,如FileOutputStream类的用法等,在Java中这些方法已经成为一种模式,需要熟记。本题中,通过构造可串行化类ex3_2实现了Serializable接口并且含有2个成员变量n3_2和d3_2,这2个成员变量需要包括在数据流中以便保存某个ex3_2对象的整个状态,程序首先创建了一个ex3_2对象,接着将它存到一个磁盘文件中,然后再将它作为一个新对象读回。第1个空,通过ObjectOutputStream的对象oos3_2调用writeObject()方法将ex3_2的对象e1写入磁盘文件ex3_2.data中;第2个空,通过ObjectInputStream的对象ois3_2调用readObject()方法从磁盘文件ex3_2.data中读取对象,由于读出来的是Object类型的对象,所以需要做类型转换。
转载请注明原文地址:https://kaotiyun.com/show/HIID777K
0

最新回复(0)