java面向对象编程习题总结

上传人:第*** 文档编号:55572066 上传时间:2018-10-02 格式:PDF 页数:23 大小:154.85KB
返回 下载 相关 举报
java面向对象编程习题总结_第1页
第1页 / 共23页
java面向对象编程习题总结_第2页
第2页 / 共23页
java面向对象编程习题总结_第3页
第3页 / 共23页
java面向对象编程习题总结_第4页
第4页 / 共23页
java面向对象编程习题总结_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《java面向对象编程习题总结》由会员分享,可在线阅读,更多相关《java面向对象编程习题总结(23页珍藏版)》请在金锄头文库上搜索。

1、第一章面向对象开发方法概述1.面向对象的软件开发有哪些优点?1)把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。2)软件需求的变动性往往是功能的变动,而功能的执行者对象,一般不会有多大的 变化,比结构化更稳定。3)对象包括属性和行为,对象把数据及方法的具体实现方式一起封装起来,使得方法与 之相关的数据不再分析,提高了每个子系统的相对对立性,从而提高软件的可维护性。4)支持封装,抽象,继承和多态。提高了软件的可重用性,可维护性和可扩展性。2.在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的?1)每个对象都具有特定的功能,相对于其他对象而言,它的功能就是为其他对象提

2、供的 服务。2)从使用者角度出发,整个软件系统就是一个服务的提供者。3)在系统内部,每个子系统也都是服务的提供者,它们其他子系统提供服务。4)因此说一个孤立的部队为提供任何服务的系统是美欧任何意义的。3.列举一些现实生活中的例子,来说明什么是依赖关系、什么是聚集关系,以及什 么是关联关系。1)关联关系:关联是指类之间的特定对应关系,可以分为单向关联和双向关联,也可以 分为一对一关联、一对多关联以及多对多关联。A 关联 B,是指 Class A 与 Class B 之间存 在特定的对应关系。举例如学生和老师,订单和客户。2)依赖关系:类之间的调用关系。A 依赖 B,ClassA 访问 Class

3、 B 提供的服务。如 Panel 与 Shape 的关系。3)聚集关系:是整体与部分之间的关系4.列举一些显示生活中的例子,来说明什么是封装,什么是接口。1)接口:对象中所有向使用者公开的方法的声明构成了对象的接口。2)封装:隐藏对象的属性和实现细节,仅仅对外公开接口。3)接口的优点:a.提高系统之间松散耦合 b.提高了系统的可扩展性。4)封装的有点:a.便于使用者正确、方便地理解和使用系统,防止使用者错误修改系统的属性。b.有助于建立各个系统之间的松耦合关系,提高系统的独立性。c.提高软件的可重用性,没个系统都是一个相对独立的整体,可以在多种环境中得 到重用。d.降低构建大型系统的风险,即使

4、整个系统不成功,个别的独立子系统有可能依然 有价值。5.抽象的最主要特征是什么?抽象是指从特定角度出发, 从已经存在的一些事物中抽取我们所关注的特性, 形成一个新的 事物的思维过程。6.在建立对象模型时,要经历哪些抽象思维过程?1)从问题领域的事物到软件模型中对象的抽象。2)从对象到类的抽象。3)从子类到父类的抽象7.类就是程序员自定义的类型。这种说法是否正确?不正确, 类是一组具有相同属性和行为的对象的抽象。 类及类的关系构成了对象模型的主要 内容。开发人员需要根据先识别对象,然后再进行分类(创建任意的数据模型)的思路来建立 对象模型。8.小王本来体重 70kg,经过减肥,体重降到 45kg

5、,试从这个问题领域中识别对象、 类、属性、状态和状态的变化。1)类:人。2)对象:小王。3)属性:体重。4)状态:70kg。5)状态的变化:小王的减肥行为导致体重下降。9.在 UML 图中哪些框图描述了系统的动态结构, 哪些框图描述了系统的静态结构?1)用例图、类框图、组件图、部署图构成了系统的静态模型。2)状态转换图、时序图、协作图则构成了系统的动态模型。第二章第一个 Java 应用1.把一个类放在包里有什么用?答:把类分包的作用:(1)能够区分名字相同的类(2)有助于实施访问权限控制(3)有助于划分和组织 Java 应用中的各个类2.JavaDoc 文档是不是为软件的终端用户提供的使用指南

6、?答:不是的,JavaDoc 文档是供 Java 开发人员阅读的,他们通过 JavaDoc 文档来了解其他开 发人员开发的类的用法。Java 开发人员应该养成经常阅读 JavaDoc 文档的良好习惯。3.对于 com.abc.dollapp.AppMain 类,使用以下命令进行编译,编译出来的.class 文件 位于什么目录下?java d C:classes sourcepath C:src C:srccomabcdollappAppMain.java答:将会存放在 C:classescomabcdollapp下。4.对于以上编译出来的 AppMain 类,以下哪个 java 命令能正确运行

7、它?(a)java C:classescomabcdollappAppMain.class(b)java classpath C:classes AppMain(c)java classpath C:classescomabcdollapp AppMain(d)java classpath C:classes com.abc.dollapp.AppMain答:(b)5.以下哪些 main()方法的声明能够作为程序的入口方法?(a)public static void main()(b)public static void main(String string)(c)public static

8、void main(String args)(d)static public int main(String args)(e)static void main(String args)答:(b),主函数必须以 public static void 形式存在,参数必须为 String 数组形式。6.假定以下程序代码都分别放在MyClass.java文件中, 哪些程序代码能够编译通过?(a)import java.awt.*;package Mypackage;class MyClass;(b)package MyPackage;import java.awt.*;class MyClass;(c

9、)/*This is comment*/package MyPackage;import java.awt.*;public class MyClass;答:(c),程序顺序必须按照 import, package, class 走,源文件必须以 public 类型的 类命名。7.对于以下 Myprog 类, 运行命令” java Myprog good morning” , 将会得到打印结果?public class Myprogpublic static void main(String argv)System.out.println(argv2);答:打印结果为空。argv0 = “go

10、od”, argv1 = “morning” 。8.下面哪些是 Java 的关键字?(a)default(b)NULL(c)String(d)throws(e)long(f)true答:(a), (d),(e), (f),java 中所有的关键字都是小写。9.当 AppMain 类的 main()方法创建了 5 个 Doll 对象时, 运行时数据区的数据如何分 布的?参考 2.4 节的图 2-13,画出此时运行时数据区的状态图。运行时数据区(内存)Java 栈区执行 main()方法的主线程的方法调用栈局部变量 beibei局部变量 jingjing局部变量 huanhuan局部变量 ying

11、ying局部变量 nini堆区Doll 实例name:贝贝Doll 实例name:晶晶Doll 实例name:欢欢Doll 实例name:迎迎Doll 实例name:妮妮方法区Doll 类型信息AppMain 类型信息(包含 main()方法信息)10.下面哪些是合法的 Java 标识符?(a)#_pound(b)_underscore(c)5Interstate(d)Interstate5(e)_5_(f)class答:(b), (d), (e)标识符命名规则如下:(1)标识符首字母必须为字母、下划线“_” 、美元“$” 、人民币“¥”(2)标识符由数字、大写字母、小写字母、下划线以及美元等

12、组成(3)不能把关键字和保留字作为标识符(4)标识符没有长度的限制(5)标识符是大小写敏感的第三章数据类型和变量1.对于以下程序,运行“java Abs” ,将得到什么打印结果?public classAbsstatic int a = 0x11;/十六进制static int b = 0011;/八进制static int c = u0011;/十六进制数据的 Unicode 字符编码static int d = 011;/八进制/* param args*/public static void main(String args)System.out.println(“a=“+a);Syst

13、em.out.println(“b=“+b);System.out.println(“c=“+c);System.out.println(“d=“+d);答:输出如下a=17b=9c=17d=92.以下哪段代码能正确编译通过?(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)、(c)能通过编译。(a)中“char c=08”将 int 赋值给 char 需要部分强制转换, “char c=8” 就正确;(d)中 unicode 编码错误

14、,java 采用的是 UCS-2 编码,共 16 位;(e)字符赋值是使用 单引号,字符串 String 赋值时才使用双引号。3.下面哪些代码能编译通过?(a)short myshort=99S;(b)String name = Excellent tutorial Mr Green;(c)char c = 17c;(d)int z = 015;答:(d)可以编译通过。(a)中 char 赋值给 short 需要强制转换;(b)中 String 类型赋值用双引 号;(c)中 int 赋值给 char 需要部分强制转换。4.字符“A”的 Unicode 字符编码为 65.下面哪些代码正确定义了一

15、个代表字符“A” 的变量?(a)Char ch=65;(b)Char ch=65;(c)Char ch =u0041;(d)Char ch=A;(e)Char ch =”A”答:(c)、(d)可以得到”A” 。(b)的输出为 5,其他无法编译通过。5.以下代码共创建了几个对象?String s1=new String(“hello”);String s2=new String(“hello”);String s3=s1;String s4=s2;答:共创建了 2 个对象。栈区 4 个局部变量分别引用了堆区的 2 个实例,而 2 个实例又引用 了工作区的同一个类。6.以下代码能否编译通过?假如能

16、编译通过,运行时将得到什么打印结果?class Teststatic int myArg = 1;public static void main(String args)Int myArg;System.out.println(myArg);答:无法编译通过,因为局部变量 myArg 声明之后 Java 虚拟机就不会自动给它初始化为默 认值,若在使用前未被初始化,编译会报错。7.对于以下程序,运行“java Mystery Mighty Mouse” ,将得到什么打印结果?public class Mysterypublic static void main(String args)Changer c = new Changer();c.method(args);System.out.println(args0+“ “+args1);static class Changervo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号