问题 问答题

请完成下列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类型的对象,所以需要做类型转换。

阅读理解与欣赏

阅读下文,完成下面问题。

红卫兵来了

流沙河

  一群年轻人涌入后院,东张西望,似在找谁。他们厉声逼问木匠唐娃儿:“哪个是流沙河?”那位少年木匠不知所措,正在为难。明知躲不脱了,不如自首,也显得那个些。我大声说:“我是!”那一群年轻人跑过来,半圆圈围了我。联手罗师傅放下大锯,回避开去。包围圈缩小了。

  又一群年轻人从小门面飞跑而来,七嘴八舌问道:“在哪儿?”他们蜂拥而上,包围圈由一层变为两三层。原来这两群年轻人就是成都来的某中学红卫兵战斗队的小将,他们驻扎本镇多日,煽了不少风,点了不少火,已将此地革命形势推向了高潮。现在他们即将凯旋成都,准备抓我回去,行“献俘”之礼,开斗争之会。他们先去家中捉我,又扑了空。可能有邻居给他们“点水”,他们跑到这里。兵分两路,一路从大门面,一路从小门面,杀入后院来。他们的小领袖甲问我:“你就是流沙河?”他似乎怀疑我是假冒的。

  “同学们,我就是。”我握着锯柄说。

  “你说你的本名。”小领袖乙说,似乎有考核我是否是假冒的意思。

  我说出本名来。他们不再怀疑,但显然很失望。我是这样瘦弱,蓬头垢面,裸体跣脚,只穿一条幺裤,寒伧之至,不像他们斗争过的“黑帮分子”。

  “你为什么躲在这儿?”小领袖甲问。

  “我被押回老家,接受群众监督改造,已经半年。我不是躲来的。”我放开锯柄,伸手掌请他们看凸起在指根下的茧皮。我说:“我靠拉大锯维持生活,已经半年。”

  小领袖乙愤怒地呵斥道:“狡辩!你以为我们不看报!你是黑帮!沙汀黑帮!”

  他双臂反抄在背后,似乎双手捏有一件东西而不让我看见。我怕,可能是打人的凶器。

  我解释说,1957年定我右派罪,当时沙汀是省文联负责人,我怎么可能入他的“黑帮”。我说,我与文学绝缘已九年了,根本不是文学界的人,不可能入任何帮。

  “是小汽车送你到这儿来的吧?”有人问。

  我解释说,1958年我被开除公职,只拿生活费,每月三十元,做体力劳动,迄今九年了,怎么可能坐小汽车。

  小将们还提了许多质问,都显得很无知。他们居然以为我的生活很好,拿稿费啦有存款啦住洋楼啦吃营养啦。他们不了解当右派多么苦,因为他们太年轻了,又都是红五类子女,没有当右派的爸爸妈妈哥哥姐姐。我一一回答了他们的质问。他们都很失望,遂不再问。

  这时候小领袖甲向小领袖乙做眉眼。小领袖乙面容黑瘦,眸子清亮,一副聪明相。他仍然双臂反抄着,不让我看见他捏的东西。他把嗓子提得老高,表情非常严厉,吼道:“你!好生改造!”随即垂下双臂,不再反抄。我看见了,他手提的是一卷粗麻绳。他那清亮的眸子轱辘一转,向小领袖甲投一个询问的眉眼。于是小领袖甲用目光扫一扫半圆形包围圈,命令:“走吧。”又掉脸向着我,叫我写一份认罪书,下午交到他们的驻扎地,由他亲收。然后他们一窝蜂似地走了。

  我坐下来,准备吸烟。手抖,擦不燃火柴。叼着烟的嘴唇也在抖。罗师傅走回来,不好意思用眼睛看我,也不好意思开口说话,只坐着。我说头疼,下午再锯,便回家写认罪书去了。(选自《锯齿啮痕录》)

1.从结构上看,写木匠罗师傅的部分文字有什么作用?作者为什么要写木匠?

答:______________________________________________________

2.如何理解“他们驻扎本镇多日,煽了不少风,点了不少火,已将此地革命形势推向了高潮”这句话的含意?

答:______________________________________________________

3.红卫兵来抓“我”的情节悬念迭起。试分析这样写的作用。

答:______________________________________________________

4.作者在文中说“小将们”“显得很无知”。联系全文说说红卫兵的无知具体表现在哪些地方?探究一下这样写的意图。

答:______________________________________________________

单项选择题