《面向对象程序设计》课程题库

上传人:第*** 文档编号:34047827 上传时间:2018-02-20 格式:DOCX 页数:24 大小:78.55KB
返回 下载 相关 举报
《面向对象程序设计》课程题库_第1页
第1页 / 共24页
《面向对象程序设计》课程题库_第2页
第2页 / 共24页
《面向对象程序设计》课程题库_第3页
第3页 / 共24页
《面向对象程序设计》课程题库_第4页
第4页 / 共24页
《面向对象程序设计》课程题库_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《《面向对象程序设计》课程题库》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程题库(24页珍藏版)》请在金锄头文库上搜索。

1、Java 基础回顾说明Java 和面向对象本身包罗万象,我们回顾的重点是基础知识。以下是问题和参考答案,完全对很难,发现一个“原则上的”错误,期末加 2 分。1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果

2、不能理解请阅读阎宏博士的Java 与模式或设计模式精解中关于桥梁模式的部分)。 - 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。 - 多态性:多态性是指允许不同子类型的对象对同一消

3、息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当 A 系统访问 B 系统提供的服务时,B系统有多种提供服务的方式,但一切对 A 系统来说都是透明的(就像电动剃须刀是 A 系统,它的供电系统是 B 系统,B 系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A 系统只会通过 B 类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(

4、override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。2、访问修饰符 public,private,protected,以及不写(默认)时的区别? 答:修饰符 当前类 同 包 子 类 其他包public protected default private 类的成员不写访问修饰时默认为 default。默认对于同一个包中的其他类相当于公开(public)

5、,对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java 中,外部类的修饰符只能是 public 或默认,类的成员(包括内部类)的修饰符可以是以上四种。3、String 是最基本的数据类型吗? 答:不是。Java 中的基本数据类型只有 8 个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。4、java 中类的

6、属性和方法是什么 ?答:你可以把类比作一类事物,比如人类就是一个大类,而一个具体的人,比如小明,就是人类里面的一个对象。这个对象有眼睛、鼻子、耳朵这些器官,这些被称为对象的属性。这个人会跑,会跳会吃饭,这是人的动作,被称为对象的方法5、属性和方法是类的两个重要的组成部分,请具体说明属性和方法,并举例。 属性和方法是类的两个重要的组成部分,其中,属性提供灵活的机制来读取,编写或计算私有字段的值,而方法则以一部分代码构成代码块的形式存在,用来实现一部分特定的功能。你可以把类比作一类事物,比如人类就是一个大类,而一个具体的人,比如小明,就是人类里面的一个对象。这个对象有眼睛、鼻子、耳朵这些器官,这些

7、被称为对象的属性。这个人会跑,会跳会吃饭,这是人的动作,被称为对象的方法。具体而言,属性是一种用于访问对象或类的特性的成员。属性可以包括字符串的长度、字体的大小、窗体的标题和客户的名称。方法是一种用于实现可以由对象或类执行的计算或操作的成员。方法在类或结构中声明,声明时需指定访问级别、返回值、方法名称及方法参数,方法参数放在括号中,并用逗号隔开。括号中没有内容表明方法没有参数。举例:class People/属性private String name; /名字private String sex; /性别/方法public void eat(Food food)/吃 food 是 食物类6、i

8、nt 和 Integer 哪个会占用更多的内存?答:Integer 对象会占用更多的内存。Integer 是一个对象,需要存储对象的元数据。但是 int 是一个原始类型的数据,所以占用的空间更少。7、什么是开发平台? 答:在软件开发的过程中,我们需要很多的工具来辅助我们的工作,不可能什么都从头自己做。我们把编程的环境和相应的辅助工具统称为开发环境,开发平台就是用来提供这个开发环境的。比如,车床工人需要一个车床才能工作一样。同样,Java 是一种开发平台Java 不单纯是一个编程的语言,它自身提供了一系列开发 Java 所需要的环境和工具,来进行编译、解释、文档生成、打包等。8、浅析 JDK,J

9、RE 与 JVM 的含义和联系。 答:JDK(Java Development Kit)是面向开发人员使用的 SDK,它提供了 Java 的开发环境和运行环境。SDK 是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE(Java Runtime Environment)是指 Java 的运行环境,是面向 Java 程序的使用者,而不是开发者。JVM(Java Virtual Machine)是 java 虚拟机,它是整个 java 实现跨平台的最核心的部分,所有的 java程序会首先被编译为.class 的类文件,这种类文件可以在虚拟机上执

10、行,也就是说 class 并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。如果安装了 JDK,会发现你的电脑有两套 JRE,一套位于 Javajdkjre ,另外一套位于 Javajre 目录下,后面这套比前面那套少了 Server 端的 Java 虚拟机。jdk 的 bin 下有各种 java 程序需要用到的命令,与jre 下的 bin 目录最明显的区别就是 jdk 下才有 javac,这一点很好理解,因为 jre 只是一个运行环境而已,与开发无关,正因为如此,具备开发功能的 jdk 自己的 jre 下才会同时有 client 性质的 jv

11、m 和server 性质的 jvm, 而仅仅作为运行环境的 jre 下只需要 client 性质的 jvm.dll 就够了。JRE 的地位就像一台 PC 机一样,我们写好的 Win32 应用程序需要操作系统帮我们运行,同样的,我们编写的 Java 程序也必须要 JRE 才能运行。所以当你装完 JDK 后,如果分别在硬盘上的两个不同地方安装了两套 JRE,那么你可以想象你的电脑有两台虚拟的 Java PC 机,都具有运行 Java 程序的功能。所以我们可以说,只要你的电脑安装了 JRE,就可以正确运行 Java 应用程序。9、举例说明如何定义和使用一个类,核心代码需注释含义。 public cl

12、ass Puppyint puppyAge;public Puppy(String name)/ 这个构造器仅有一个参数:nameSystem.out.println(Passed Name is : + name );/ 设置年龄public void setAge( int age ) puppyAge = age;/ 获取年龄public int getAge( )System.out.println(Puppys age is : + puppyAge );return puppyAge;public static void main(String args)/* 创建对象 */Pup

13、py myPuppy = new Puppy( tommy );/* 通过方法来设定 age */myPuppy.setAge( 2 );/* 调用另一个方法获取 age */myPuppy.getAge( );/*你也可以像下面这样访问成员变量 */System.out.println(Variable Value : + myPuppy.puppyAge );10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少? 答:Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5

14、 然后进行下取整。11、JAVA 中构造方法,实例方法,类方法,有什么区别? 答:构造方法, 是用来构造类的对象的,方法名和类名相同没有返回值。一般用 new 构造方法名() 来创建该类的对象。在不写构造方法的情况下会有一个默认的无参构造方法。实例方法, 简单地说就是可以通过类的实例(某个对象)调用的方法,也就是我们正常情况下使用的方法。实例方法也称成员方法。类方法, 简单地说就是直接可以用类名调用的方法,也就是被关键字 static 修饰的方法,它不需要创建类的对象来调用该方法。12、描述 以下 Test 类的基本运行顺序。 1. public class Test 2. private S

15、tring name;3. private int age;4.5. public Test() 6. name = Tom;7. age = 20;8. 9. public static void main(String args) 10. Test t = new Test();11. System.out.println(t.name + 的年龄是 + t.age );12. 13. 答:运行的基本顺序是:(1 )先运行到第 9 行,这是程序的入口。(2 )然后运行到第 10 行,这里要 new 一个 Test,就要调用 Test 的构造方法。(3 )就运行到第 5 行,注意:可能很多人

16、觉得接下来就应该运行第 6 行了,错!初始化一个类,必须先初始化它的属性。(4 )因此运行到第 2 行,然后是第 3 行。(5 )属性初始化完过后,才回到构造方法,执行里面的代码,也就是第 6 行、第 7 行。(6 )然后是第 8 行,表示 new 一个 Test 实例完成。(7 )然后回到 main 方法中执行第 11 行。(8 )然后是第 12 行,main 方法执行完毕。13、数组有没有 length()方法?String 有没有 length()方法? 答:数组没有 length()方法,有 length 的属性。String 有 length()方法。JavaScript 中,获得字符串的长度是通过 length 属性得到的,这一点容易和 Java 混淆。15、构造器(constructor)是否可被重写(override )? 答:构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

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