《Java面向对象程序设计》思考题及答案...doc

上传人:yyf 文档编号:5016599 上传时间:2020-01-28 格式:DOC 页数:45 大小:977KB
返回 下载 相关 举报
《Java面向对象程序设计》思考题及答案...doc_第1页
第1页 / 共45页
《Java面向对象程序设计》思考题及答案...doc_第2页
第2页 / 共45页
《Java面向对象程序设计》思考题及答案...doc_第3页
第3页 / 共45页
《Java面向对象程序设计》思考题及答案...doc_第4页
第4页 / 共45页
《Java面向对象程序设计》思考题及答案...doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《Java面向对象程序设计》思考题及答案...doc》由会员分享,可在线阅读,更多相关《《Java面向对象程序设计》思考题及答案...doc(45页珍藏版)》请在三一文库上搜索。

1、Java 面向对象编程思考题及答案.2 第 1 章 面向对象的开发方法概述. 2 第 2 章 第一个 Java 应用 . 3 第 3 章 数据类型和变量. 6 第 4 章 操作符 . 8 第 5 章 流程控制 . 10 第 6 章 继承 . 13 第 7 章 Java 语言中的修饰符 . 17 第 8 章 接口 . 21 第 9 章 异常处理 . 23 第 10 章 类的生命周期. 27 第 11 章 对象的生命周期. 28 第 12 章 内部类 . 30 第 13 章 多线程与并发. 33 第 14 章 数组 . 35 第 15 章 Java 集合 . 37 第 16 章 输入输出 . 39

2、 第 17 章 图形用户界面. 41 第 18 章 Swing 组件 . 43 第 19 章 Java 常用类 . 44Java 面向对象编程思考题及答案 v1.0第 1 章 面向对象的开发方法概述1面向对象的软件开发有哪些优点?答案面向对象的软件开发具有以下优点:l 把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。l 软件需求的变动往往是功能的变动,而功能的执行者对象一般不会有大的变化。这使得按照对象设计出来的系统结构比较稳定。l 对象包括属性(数据)和行为(方法),对象把数据以及方法的具体实现方式一起 封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立 性

3、,从而提高了软件的可维护性。l 支持封装、抽象、继承和多态,提高了软件的可重用性、可维护性和可扩展性。2在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的?答案开发软件系统的目的,就是为了让它提供特定服务。从使用者的角度出发,整个软件系 统就是一个服务提供者。大的系统由多个子系统组合而成。在系统内部,每个子系统(对象或对象的组合)也都是服务提供者,它们为其它子系统或者所属的大系统提供服务,各个系统之间通过发送消息来互相获得服务。因此,一个孤立的不对外提供任何服务的系统是没有任何意义的。3列举一些现实生活中的例子,来说明什么是依赖关系、什么是聚集关系,以及什么是关联关系。答案

4、依赖关系:人依赖食物;电视机依赖电;理发师依赖剪刀和吹风机;鱼依赖水 聚集关系:电脑由显示器、主机和键盘等聚集而成; 关联关系:公司和员工;银行和客户;老公和老婆4列举一些现实生活中的例子,来说明什么是封装,什么是接口。答案封装:电脑主机的组件被封装在机箱内;电视机的内部构件也被封装在大壳子内 接口:电脑的键盘上的按键是电脑向人提供的接口;电脑上的 USB 插口是向移动硬盘提供的接口;电脑上的光盘驱动器是向光盘提供的接口。5抽象的最主要的特征是什么?答案抽象是指从特定角度出发,从已经存在的一些事物中抽取我们所关注的特性,形成一个新的事物的思维过程。抽象是一种由具体到抽象、由复杂到简洁的思维方式

5、。6在建立对象模型时,要经历哪些抽象思维过程?答案 (1)从问题领域的事物到软件模型中对象的抽象 (2)从对象到类的抽象(3)从子类到父类的抽象7类就是程序员自定义的类型,这句话对吗?答案 对的。对象模型中的类可看作是开发人员自定义的数据类型,Java 虚拟机的运行时环境封装了 把自定义的数据类型映射到计算机的内置数据类型的过程,使得开发人员不必受到计算机的 内置数据类型的限制,对任意一种问题领域,都可以方便的根据识别对象、再进行分类(创 建任意的数据类型)的思路来建立对象模型。8小王本来体重 70Kg,经过减肥,体重降到 45Kg,试从这个问题领域中识别对象、类、属性、行为、状态,和状态变化

6、。答案 对象:小王 类:人 属性:体重 行为:减肥状态:减肥前状态:小王体重 70Kg;减肥后状态:小王体重 45Kg状态变化:减肥行为使得小王的体重发生了变化9在 UML 框图中,哪些框图描述了系统的动态结构,哪些框图描述了系统的静态结构?答案状态转换图、时序图和协作图则构成了系统的动态结构;用例图、类框图、组件图和部署图等四个图形,构成了系统的静态结构;第 2 章 第一个 Java 应用1把一个类放在包里有什么作用?答案把类放到特定的包中,有三大作用:(1)能够区分名字相同的类。(2)有助于实施访问权限控制。(3)有助于划分和组织 Java 应用中的各个类。2JavaDoc 文档是不是为软

7、件的终端用户提供的使用指南?答案不是Java 类通过 JavaDoc 文档来对外公布自身的用法,JavaDoc 文档是基于 HTML 格式的帮 助文档。JavaDoc 文档主要是供 Java 开发人员看的。3对于 com.abc.dollapp.AppMain 类,使用以下命令进行编译,编译出来的.class 文件位于什么目录下?java d C:classes sourcepath C:src C:srccomabcdollappAppMain.java答案 C:classescomabcdollappAppMain.java4对于以上编译出来的 AppMain 类,以下哪个 java 命令

8、能正确地运行它?a) java C:classescomabcdollappAppMain.class b) java classpath C:classes AppMainc) java classpath C:classescomabcdollapp AppMain d) java classpath C:classes com.abc.dollapp.AppMain答案 d5以下哪个 main()方法的声明能够作为程序的入口方法?a) public static void main()b) public static void main(String string)c) public s

9、tatic void main(String args) d) static public int main(String args) e) static void main(String args)答案 b6. 假定以下程序代码都分别放在 MyClass.java 文件中,哪些程序代码能够编译通过?a)import java.awt.*; package myPackage; class MyClass b)package myPackage;import java.awt.*;class MyClassc) /*This is a comment */ package myPackage;

10、 import java.awt.*;public class MyClass答案 b,c7对于以下 Myprog 类,运行命令“java Myprog good morning”,将会得到什么打印结果?public class Myprogpublic static void main(String argv) System.out.println(argv2);答案 将抛出 java.lang.ArrayIndexOutOfBoundsException 异常8.下面哪些是 Java 的关键字?a) default b) NULL c) String d) throws e) longf)

11、 true答案 a,d,e,f9当 AppMain 类的 main()方法创建了五个 Doll 对象时,运行时数据据区的数据是如何分布的?参照 2.4 节的图 2-14,画出此时运行时数据据区的状态图。答案10下面哪些是合法的 Java 标识符?a) #_poundb) _underscore c) 5Interstated) Interstate5e) _5_f) class答案 b,d,e第 3 章 数据类型和变量1对于以下程序,运行“java Abs”,将得到什么打印结果?public class Abs static int a=0x11; static int b=0011; sta

12、tic int c=u0011; static int d=011;public static void main(String args) System.out.println(a); System.out.println(b); System.out.println(c);System.out.println(d);答案 打印以下内容:1791792以下哪段程序能正确编译通过?a) char a=a; char b=1; char c=08;b) int a=a;c) long a=u00FF ; d) char a=u0FF ; e) char d=d;答案b,c3下面哪段代码能编译通过

13、?a) short myshort = 99S;b) String name = Excellent tutorial Mr Green;c) char c = 17c;d) int z = 015;答案 d4字符“A”的 Unicode 编码为 65。下面哪些代码正确定义了一个代表字符“A”的变量?a) char ch = 65;b) char ch = 65;c) char ch = u0041; d) char ch = A; e)char ch = A;答案 c,d5以下代码共创建了几个对象?String s1=new String(hello); String s2=new Stri

14、ng(hello); String s3=s1;String s4=s2;答案 2个对象6以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?public class Test static int myArg = 1;public static void main(String args) int myArg; System.out.println(myArg);答案 编译出错,main()方法中的myArg局部变量没有被初始化。7对于以下程序,运行“java Mystery Mighty Mouse”,得到什么打印结果?public class Mystery public st

15、atic void main(String args) Changer c = new Changer(); c.method(args);System.out.println(args0 + + args1);static class Changer void method(String s) String temp = s0;s0 = s1;s1 = temp;答案 打印:Mouse Mighty8对于以下程序,运行“java Pass”,得到什么打印结果?public class Passstatic int j=20;public static void main(String arg

16、v)int i=10;Pass p = new Pass(); p.amethod(i); System.out.println(i);System.out.println(j);public void amethod(int x)x=x*2;j=j*2;答案 打印:10 40第 4 章 操作符1以下哪些程序代码能够编译通过?a) int i=0;if(i) System.out.println(Hello);b) boolean b1=true; boolean b2=true; if(b1=b2) System.out.println(So true);c) int i=1; int j=

17、2; if(i=1| j=i)System.out.println(OK);d) int i=1;int j=2;if(i=1 &| j=2) System.out.println(OK);答案 b,c2运行以下程序,得到什么打印结果?System.out.println( 1 1); System.out.println( -1 31); System.out.println( 2 1);System.out.println( 1 0 & 5 | 2) System.out.println(true);答案 不能编译通过5以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?int

18、output=10;boolean b1 = false;if(b1=true) & (output+=10)=20) System.out.println(We are equal +output);elseSystem.out.println(Not equal! +output);答案 打印:Not equal! 106以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?int output=10;boolean b1 = false;if(b1=true) & (output+=10)=20) System.out.println(We are equal +output);

19、elseSystem.out.println(Not equal! +output);答案 打印:We are equal 207对于以下声明:String s1=new String(Hello); String s2=new String(there); String s3=new String();下面哪个是合法的操作?a) s3=s1 + s2;b) s3=s1-s2;c) s3=s1 & s2;d) s3=s1 & s2;答案 a8以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?public class Convpublic static void main(Strin

20、g argv) Conv c=new Conv();String s=new String(ello);c.amethod(s);public void amethod(String s)char c=H;c+=s; System.out.println(c);答案 编译出错,“c+=s”这行代码不正确。9运行以下代码,得到什么打印结果?System.out.println(6+6+ x); System.out.println(x+6+6);答案 打印:12x x66第 5 章 流程控制1. 运行以下代码,得到什么打印结果?int i = 3;int j = 0;double k = 3.2

21、;if (i k)if (i = j) System.out.println(i);elseSystem.out.println(j);elseSystem.out.println(k);答案 打印:02以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?int i = 4;switch (i) default: System.out.println(default); case 0: System.out.println(zero); break;case 1: System.out.println(one); case 2: System.out.println(two);答案

22、打印:default zero3以下哪段代码是合法的?a) int i;for (i=5,int j=10; i10;j-) b) int i,j;for (i=0,j=10;i0;i+,j-) c) int i,k;for (i=0,k=9;(i0);i+,k-) d) int i,j;for (i=0;j=10;i10;i+,j-) 答案 c4运行以下代码,得到什么打印结果?int i = 1;switch (i) default: System.out.println(default); case 0: System.out.println(zero); break;case 1: Sy

23、stem.out.println(one); case 2:System.out.println(two);答案 打印: one two5以下哪段代码是合法的?a) float x = 1; switch(x) case 1:System.out.println(ok);b) long y =1; switch(y) case 1:System.out.println(ok);break;c) byte x =1; switch(x) case 1/1:System.out.println(ok);d) int x=1; int c =1; switch(c) case x:System.ou

24、t.println(ok);break;e) short x=1; switch(x) case 3.2 /3:System.out.println(ok);break;f) short x=1; switch(x) case 1,2,3:System.out.println(ok);break;答案 c6以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?public class MySwitchpublic static void main(String argv) MySwitch ms= new MySwitch(); ms.amethod();public void ame

25、thod()for(int a=0,b=0;a2; b=+a,System.out.println(b=+b) System.out.println(a=+a);答案 打印:a=0 b=1 a=1 b=27以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?int x = 0;one:while (x 3)break two;答案 编译出错。“break two”语句出错。8以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?public class Hopepublic static void main(String argv) Hope h = new Hope();p

26、rotected Hope()int i=1;do System.out.println(i);while(+i3);答案 打印 1 2第 6 章 继承1继承有哪些优点和缺点?答案 优点:提高程序代码的可重用性;提高系统的可扩展性 缺点:如果继承树非常复杂、或者随便扩展本来不是专门为继承而设计的类,反而会削弱系统的可扩展性和可维护性。2继承与组合有哪些异同?答案 相同点:组合与继承都是提高代码可重用性的手段。 不同点:组合关系和继承关系相比,前者的最主要优势是不会破坏封装,当类 A 与类 C之间为组合关系时,类 C 封装实现,仅向类 A 提供接口。而当类 A 与类 C 之间为继承关系时,类 C

27、 会向类 A 暴露部分实现细节。在软件开发阶段,组合关系不能比继承关系减少编 码量,但是到了软件维护阶段,由于组合关系使系统具有较好的松耦合性,因此使得系统更 加容易维护。组合关系的缺点是比继承关系要创建更多的对象。3方法覆盖必须满足哪些规则?答案 以下三个是方法覆盖必须满足的主要规则:(1)子类方法的名称、参数签名和返回类型必须与父类方法的名称、参数签名和返回类型一致。(2)子类方法不能缩小父类方法的访问权限。(3)子类方法不能抛出比父类方法更多的异常。4以下哪些代码能够编译通过?a) class Fruit public class Orange extends Fruit public

28、static void main(String args) Fruit f=new Fruit();Orange o=f;b) class Fruit public class Orange extends Fruit public static void main(String args) Orange o=new Orange();Fruit f=o;c) interface Fruit public class Apple implements Fruit public static void main(String args) Fruit f=new Fruit();Apple a=f

29、;d) interface Fruit public class Apple implements Fruit public static void main(String args) Apple a=new Apple();Fruit f=a;e) interface Fruit class Apple implements Fruit class Orange implements Fruit public class MyFruit public static void main(String args) Orange o=new Orange();Fruit f=o;Apple a=f

30、;答案 b,d5对于以下类:interface IFaceclass CFace implements IFaceclass Basepublic class ObRef extends Basepublic static void main(String argv) ObRef ob = new ObRef();Base b = new Base(); Object o1 = new Object();IFace o2 = new CFace();下面哪些代码能够编译通过?a) o1=o2; b) b=ob; c) ob=b; d) o1=b;答案 a,b,d6对于以下类:class A c

31、lass B extends A class C extends A public class Q3ae4 public static void main(String args) A x = new A();B y = new B(); C z = new C();/ 此处插入一条语句下面哪些语句放到以上插入行,将导致运行时异常?a) x = y;b) z = x;c) y = (B) x; d) z = (C) y; e) y = (A) y;答案 c7下面哪些是合法的语句?a) Object o = new String(abcd);b) Boolean b = true;c) Pane

32、l p = new Frame(); d) Applet a = new Panel(); e) Panel p = new Applet();答案 a , e8以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?Object o = new String(abcd); String s = o; System.out.println(s); System.out.println(o);答案 编译出错。“String s = o”语句出错。9以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?class Baseabstract public void myfunc();p

33、ublic void another() System.out.println(Another method);public class Abs extends Basepublic static void main(String argv) Abs a = new Abs();a.amethod();public void myfunc() System.out.println(My func);public void amethod()myfunc();答案 编译出错。Base 类必须声明为抽象类,因为它包含 myfunc()抽象方法。10以下哪些代码是合法的?a) public abst

34、ract method();b) public abstract void method();c) public abstract void method()d) public virtual void method();e) public void method() implements abstract;答案 b11以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?abstract class Baseabstract public void myfunc();public void another() System.out.println(Another method);pu

35、blic class Abs extends Basepublic static void main(String argv) Abs a = new Abs();a.amethod();public void myfunc() System.out.println(My func);public void amethod()myfunc();答案 打印“My func”12以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?import java.io.FileNotFoundException;class Basepublic static void amethod()throws FileNotFoundExceptionpublic class ExcepDemo extends Basepublic static void main(String argv) ExcepDemo e = new ExcepDemo();public static void amethod()protected ExcepDemo() System.out.println(Pausing); ame

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1