面向对象专题练习

合集下载

面向对象程序设计练习题库与答案

面向对象程序设计练习题库与答案

面向对象程序设计练习题库与答案一、单选题(共36题,每题1分,共36分)1.下列关于静态内部类的说法,错误的是()A、静态内部类不能直接访问外部类的非静态成员B、静态内部类只能访问外部类的静态成员C、创建静态内部类的对象时,必须要先创建外部类的对象D、静态内部类,就是使用static关键字修饰的成员内部类正确答案:C2.以下选项中,哪个是FileInputStream的父类()A、FileB、FileOutputC、OutputStreamD、InputStream正确答案:D答案解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。

3.下面关于FileInputStream和FileOutputStream的说法中,错误的是()A、FileInputStream是InputStream的子类,它是操作文件的字节输入流B、FileOutputStream是OutputStream的子类,它是操作文件的字节输出流C、如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面D、使用FileInputStream读取文件数据时,必须保证要读取的文件存在并且是可读的正确答案:C答案解析:如果使用FileOutputStream向一个已存在的文件中写入数据,如果构造函数FileOutputStream的参数append的值是true,那么写入的数据才会追加到原先数据之后,否则的话,原先的数据会被清空,然后再写入新的数据。

4.下列关于类的说法中,错误的是()A、Java中创建类的关键字是class。

B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为。

C、Java中对象的创建,首先需要定义出一个类。

D、一个类只能创建一个对象。

正确答案:D答案解析:类是对象的模板,对象是类的实例,一个类是可以创建多个对象的。

面向对象第18章练习题

面向对象第18章练习题

面向对象第18章练习题一、选择题1. 在面向对象编程中,下列哪个概念描述了对象的属性和行为?A. 类B. 状态C. 方法D. 继承A. classB. defC. objectD. static3. 在Java中,下列哪个方法用于创建对象?A. new()B. create()C. init()D. malloc()A. 子类可以继承父类的私有属性B. 子类可以继承多个父类C. 父类可以继承子类D. 子类可以重写父类的方法5. 在Python中,下列哪个关键字用于定义类的方法?A. functionB. methodC. defD. class二、填空题1. 在面向对象编程中,__①__是具有相同属性和方法的对象的集合。

2. __①__关键字用于定义一个类,而__②__关键字用于创建对象。

3. 在Java中,所有类都是__①__类的子类。

4. __①__是一种将一个类的属性和方法传递给另一个类的方式。

5. 在Python中,使用__①__关键字来定义类的属性。

三、判断题1. 一个类可以同时继承多个类。

()2. 构造方法用于初始化对象的属性。

()3. 在Java中,静态方法不能访问非静态成员。

()4. 子类可以调用父类的构造方法。

()5. 在Python中,类方法可以通过类名直接调用。

()四、简答题1. 请简要说明面向对象编程的三大特性。

2. 请解释什么是构造方法,并说明其在类中的作用。

3. 请举例说明如何在Java中实现方法的重写。

4. 请简要介绍Python中的类属性和实例属性。

5. 请说明如何使用继承来实现代码的复用。

五、编程题1. 定义一个矩形类(Rectangle),包含长(length)和宽(width)两个属性,以及计算面积(getArea)和周长(getPerimeter)的方法。

2. 定义一个学生类(Student),包含姓名(name)、年龄(age)和成绩(score)三个属性,以及一个显示学生信息(showInfo)的方法。

《面向对象》练习题.

《面向对象》练习题.

一、单项选择题1. 类的构造函数被自动调用执行的情况是在定义该类的()A. 成员函数时B. 数据成员时C. 对象时D. 友元函数时2. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语句后,x.a和x.b的值分别为()A. 1和0B. 1和4C. 4和0D. 4和13. 所谓多态性是指()A. 不同的对象调用不同名称的函数B. 不同的对象调用相同名称的函数C. 一个对象调用不同名称的函数D. 一个对象调用不同名称的对象4. 构造函数不具备的特征是()A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必须指定类型说明5. 在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()A. 受限制B. 保持不变C. 受保护D. 不受保护6. C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念7. 在类中说明的成员可以使用关键字的是()A. publicB. externC. cpuD. register8. C++语言中所有在函数中定义的变量,连同形式参数,都属于()A. 全局变量B. 局部变量C. 静态变量D. 函数9. 在私有继承的情况下,基类成员在派生类中的访问权限()A. 受限制B. 保持不变C. 为共有D. 为保护10. 使用引用作为函数参数,下列说法正确的是()A. 实参是形参的备份B. 实参与形参无联系C. 形参是实参的备份D. 实参与形参是同一对象11. C++的继承性允许派生类继承基类的()A. 部分特性,并允许增加新的特性或重定义基类的特性B. 部分特性,但不允许增加新的特性或重定义基类的特性C. 所有特性,并允许增加新的特性或重定义基类的特性D. 所有特性,但不允许增加新的特性或重定义基类的特性12. 以下基类中的成员函数表示纯虚函数的是()A. virtual void tt()=0B. void tt(int)=0C. virtual void tt(int)D. virtual void tt(int){}二、填空题(请在每小题的空格中填上正确答案。

面向对象考试题目和答案

面向对象考试题目和答案

面向对象考试题目和答案一、单项选择题(每题2分,共20分)1. 面向对象程序设计中,对象的状态由()来表示。

A. 属性B. 方法C. 消息D. 类答案:A2. 在面向对象程序设计中,封装的目的是()。

A. 隐藏对象的属性B. 隐藏对象的方法C. 隐藏对象的实现细节D. 隐藏对象的消息答案:C3. 面向对象程序设计中,继承的主要优点是()。

A. 重用代码B. 减少代码量C. 提高程序的可读性D. 所有以上选项答案:D4. 在面向对象程序设计中,多态性是指()。

A. 一个对象可以有多个类B. 一个类可以有多个对象C. 一个消息可以有多个行为D. 一个类可以有多个属性答案:C5. 在面向对象程序设计中,以下哪个不是类的组成部分()。

A. 属性B. 方法D. 函数答案:D6. 在面向对象程序设计中,以下哪个概念不是面向对象的核心概念()。

A. 封装B. 继承C. 多态D. 过程答案:D7. 在面向对象程序设计中,以下哪个概念是面向对象的核心概念之一()。

A. 函数B. 过程C. 消息D. 抽象8. 在面向对象程序设计中,以下哪个不是类的成员()。

A. 属性B. 方法C. 函数D. 消息答案:C9. 在面向对象程序设计中,以下哪个不是类的属性()。

A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:D10. 在面向对象程序设计中,以下哪个不是类的访问修饰符()。

B. 保护C. 公共D. 静态答案:D二、多项选择题(每题3分,共15分)1. 面向对象程序设计中,以下哪些是类的属性()。

A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:ABC2. 面向对象程序设计中,以下哪些是类的成员()。

A. 属性C. 函数D. 消息答案:ABD3. 面向对象程序设计中,以下哪些是类的访问修饰符()。

A. 私有B. 保护C. 公共D. 静态答案:ABC4. 面向对象程序设计中,以下哪些是面向对象的核心概念()。

面向对象练习题

面向对象练习题

面向对象练习题及答案一、用例图1.请就以下需求建立用例图:一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。

该音像商店将存有大约1000 盘录像带和500 张光碟,这些订购涉及多家订购商。

所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。

客户可以预定录像带并在指定日期来取。

系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。

评分标准:画图格式标准3 分,用例全面正确4 分,角色与用例之间的关系正确3 分2.试用用例图描述小型图书资料管理系统。

某学院打算开发一个小型图书资料管理系统MiniLibrary,该系统基于Internet实现教师和学生对各种图书资料的借阅、查询和管理。

图书管理员负责管理各种图书资料,查询图书资料信息,并进行图书的借阅管理。

注册用户可以通过Internet 随时查询图书资料信息和个人借阅情况,预订目前借不到的图书资料,并可以快捷地查找和浏览所需要的电子资料。

系统可以提供适当的浏览器供用户阅读电子文献资料。

3.试用用例图描述系统简介:航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。

各个旅行社把预定机票的旅客信息输入到系统中,系统为旅客安排航班。

当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单到航空公司交款取票,系统核对无误即打印出机票给旅客。

此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。

技术要求和限制条件(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。

(2)对于本系统还应补充一下功能:1)旅客延误了取票时间的处理2)航班取消后的处理4 .请就此需求建立功能模型:某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

面向对象 练习题

面向对象 练习题

面向对象练习题面向对象练习题面向对象编程是一种常用的编程范式,它将程序设计问题分解成一系列的对象,每个对象都有自己的属性和方法。

面向对象编程的核心思想是把现实世界中的事物抽象成程序中的对象,并通过对象之间的交互来解决问题。

为了提升对面向对象编程的理解和掌握,下面将给出一些面向对象编程的练习题。

1. 设计一个汽车类,要求具有以下属性和方法:- 属性:品牌、颜色、价格- 方法:启动、加速、刹车、熄火2. 设计一个学生类,要求具有以下属性和方法:- 属性:姓名、年龄、性别、成绩- 方法:学习、休息、考试、查看成绩3. 设计一个图书类,要求具有以下属性和方法:- 属性:书名、作者、出版社、价格- 方法:借阅、归还、查看借阅状态、查看图书信息4. 设计一个银行账户类,要求具有以下属性和方法:- 属性:账户名、账号、余额- 方法:存款、取款、查询余额、转账5. 设计一个矩形类,要求具有以下属性和方法:- 属性:宽度、高度- 方法:计算面积、计算周长、判断是否为正方形这些练习题涵盖了面向对象编程中常见的概念和操作。

通过解答这些题目,可以加深对面向对象编程的理解,并提升对类、对象、属性和方法的使用熟练度。

在解答这些题目时,可以先思考每个类应该具有哪些属性和方法,然后根据需求进行实现。

可以使用任何编程语言来完成这些练习题,但建议使用面向对象编程语言如Java、Python等。

除了以上的练习题,还可以尝试设计更复杂的类和对象,如实现一个电商平台的商品类、用户类和订单类,或者实现一个图形界面的计算器类。

通过不断练习和实践,可以逐渐掌握面向对象编程的技巧和思维方式。

总之,面向对象编程是一种重要的编程范式,掌握它对于提升编程能力和解决实际问题非常有帮助。

通过解答上述练习题,可以加深对面向对象编程的理解和掌握,为以后的编程工作打下坚实的基础。

希望大家能够充分利用这些练习题,不断提升自己的编程能力。

java面向对象练习题

java面向对象练习题

java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。

2. 描述Java中接口和抽象类的区别。

3. 什么是Java中的继承?请举例说明如何使用继承。

三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。

为每个属性提供getter和setter方法。

2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。

为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。

3. 创建一个接口`Movable`,包含一个方法`move()`。

然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。

四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。

python面向对象练习题(打印版)

python面向对象练习题(打印版)

python面向对象练习题(打印版)# Python面向对象编程练习题面向对象编程(OOP)是Python中的核心概念之一。

通过以下练习题,你可以加深对Python中类和对象的理解。

## 练习一:定义一个类1. 定义一个名为`Person`的类,包含以下属性:- `name`:姓名- `age`:年龄2. 为`Person`类添加一个初始化方法`__init__`,用于设置姓名和年龄。

3. 添加一个方法`greet`,用于打印问候语。

```pythonclass Person:def __init__(self, name, age): = nameself.age = agedef greet(self):print(f"Hello, my name is {} and I am{self.age} years old.")```## 练习二:继承和多态1. 定义一个`Student`类,继承自`Person`类。

2. 添加一个属性`student_id`来表示学生的学号。

3. 重写`greet`方法,使其打印出学生特有的问候语。

```pythonclass Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef greet(self):print(f"Hello, I am {}, a student of age {self.age} with ID {self.student_id}.")```## 练习三:封装1. 创建一个名为`Car`的类。

2. 包含属性:`make`(制造商),`model`(型号),`year`(年份)。

3. 为这些属性提供私有化处理,即在属性名前加上双下划线`__`。

面向对象练习题

面向对象练习题

面向对象练习题一、选择题1. 在面向对象编程中,以下哪个概念不是面向对象的核心概念?A. 封装B. 继承C. 多态D. 函数2. 以下哪个选项是Java语言中实现多态的方式?A. 通过继承B. 通过接口C. 通过重载D. 通过重写3. 在面向对象编程中,一个类可以有多少个父类?A. 0个或1个B. 1个C. 多个D. 无数个4. 以下哪个关键字在Java中用于定义一个类?A. structB. classC. interfaceD. enum5. 以下哪个是Java中创建对象的关键字?A. newB. createC. instanceD. object二、填空题6. 在面向对象编程中,______ 是指将数据和操作这些数据的方法结合在一起。

7. 一个类可以包含______ 和______ 两种成员。

8. 封装的目的是______ 数据,并对外部隐藏内部细节。

9. 继承可以使得子类获得父类的______ 和______。

10. 多态性允许不同类的对象对同一消息做出响应,但具体______ 取决于对象的实际类型。

三、简答题11. 简述面向对象编程的三大特性,并举例说明它们在实际编程中的应用。

12. 解释什么是接口,并说明接口与抽象类的区别。

13. 描述如何使用Java实现一个简单的类,并说明如何创建该类的实例。

四、编程题14. 编写一个Java类`Person`,包含属性`name`和`age`,以及一个方法`introduce()`,该方法输出个人信息。

15. 假设你已经有一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。

编写一个名为`Dog`的类,继承自`Animal`,并实现`makeSound()`方法,使得`Dog`对象调用该方法时输出"Woof!"。

16. 创建一个Java程序,包含一个名为`Vehicle`的类,它有一个属性`speed`和一个方法`increaseSpeed(int increment)`。

面向对象_练习

面向对象_练习

课堂练习一、填空题1、对象是抽象的类,类的具体化就是()。

2、继承性是父类和子类之间()和消息的机制。

3、面向对象的设计的主要目标是提高生产效率,提高质量和提高()。

4、对象模型描述了系统的(),它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。

5、面向对象技术中的“类”,是比较理想的()。

参考答案:1.对象2、共享数据结构3、可维护性4、静态结构5、可重用软构件二、判断题1、继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。

()2、多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。

( )3、面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。

( )4、面向对象的设计的主要目标是提高生产效率,提高质量和提高可维护性。

()5、对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。

()参考答案:1、(×) 2、(×) 3、(√) 4、(√) 5、(√)三、多项选择题1、面向对象程序设计的基本机制()。

A) 继承B) 消息C) 方法D) 结构E)抽象2、下列属于Coad方法中面向对象的分析模型的层次有()。

A) 主题层B) 对象层C) 应用层D) 接口层E)数据层3、一个类属性依其特征划分,其类型有()。

A) 描述型B) 定义型C) 派生型D) 参考型E)应用型4、在进行面向对象分析时,所采用的模型有()。

A) 对象模型B) 动态模型C) 静态模型D) 功能模型E)接口模型5、状态是对象属性的值的一种抽象,它的性质有()。

A) 时间性B) 持续性C) 有序性D) 有穷性E)无序性参考答案:1、ABC 2、AB 3、ABCD 4、ABD 5、AB 四、问答题1、什么是面向对象方法学?它有哪些优点?参考答案:面向对象方法是一种运用对象、类、继承、封装、聚合、消息、多态等概念来构造系统的软件开发方法。

c#面向对象试题及答案

c#面向对象试题及答案

一、选择题:1、下列关于类的描述中,错误的是( A )。

A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体2、下列常量中,不是字符常量的是( B )。

A.'\n' B."y"C.'x' D.'\7'3、下列表达式中,其值为0的是( A )。

A.5/10 B.!0C.2>4?0:1 D.2&&2||04、下列关于数组维数的描述中,错误的是( C )。

A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积5、下列关于字符数组的描述中,错误的是( D )。

A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串6、已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。

A.a[0] B.a[1]C.a[2] D.a[3]7、下列while循环语句的循环次数是( A )。

while(int i(0)) i--;A.0 B.1C.2 D.无限8、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( C )。

A.&(a+1) B.&(p+1)C.&p[2] D.*p++9、已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。

A.p=&a B.p=&bC.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};10、当一个函数没有返回值时,该函数类型应说明为( A )。

A.void B.intC.无D.任意11、下列关于类的定义格式的描述中,错误的是( C )。

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。

4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。

每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。

5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。

面向对象编程练习题库_test

面向对象编程练习题库_test

专题3 流程控制语句 一、填空题
1.在switch语句中的表达式的类型必须是( )【存放类型】。 2.break在循环语句中的作用是()。 3.分支语句包括()和()。 4.while循环语句的循环次数( ),do-while语句的循环次数( ),for 语句的循环次数( )。 5. continue在循环语句中的作用是 ()。
C.Java只支持单重继承,一个类可以实现一个接口 D.Java支持多重继承,但一个类只可以实现一个接口 21.下列方法的声明中不合法的是 。 A.float area( ){…} B.void area( ){…} C.area{…} D.int area(int r){…} 22、下面哪个包是编程时不需要导入就可以直接使用的 。 A. B.ng C.java.sql D.java.util 23、调用构造方法是在 。 A.类定义时 B.创建对象时 C.调用对象的方法时 D.使用对象的变量时 24、在子类构造方法的哪个地方可以调用其父类的构造方法 。 A.任何地方 B.构造方法的第一条语句 C.构造方法的最后一条语句 D.无法在子类构造方法中调用父类的构造方法 25、关于Java中的继承,下列说法错误的是 。 A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序 结构。 B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的 新类,而不必从头开始,避免了工作上的重复。 C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以 加入自己的一些特性,使得它更具体、功能更强大。 D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类 最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用 多重继承。 26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键 字指出成员变量 。 A.static B.super C.this D.new 27、什么样的方法不能被重写 。

面向对象练习题

面向对象练习题

⾯向对象练习题1.⾯向对象三⼤特性,各有什么⽤处,说说你的理解。

继承:解决代码重⽤问题 多态:为了类在继承和派⽣的时候,保证使⽤家谱中任⼀类的实例的某⼀属性时可以正确调⽤。

封装:明确区分内外,控制外部对隐藏属性的操作⾏为,隔离复杂度2.类的属性和对象的属性有什么区别? 类的属性分为数据属性和函数属性。

类的数据属性时所有对象共享的,类的函数属性是绑定给对象⽤的,称为绑定到对象的⽅法。

对象的属性可能来⾃类定义,即类属性。

(类定义⾃⾝、类定义继承两种途径) 对象的属性还可能是该对象实例定义的,即对象属性3.⾯向过程编程与⾯向对象编程的区别与应⽤场景? ⾯向过程的程序设计的核⼼是过程(流⽔线式思维),过程即解决问题的步骤,⾯向过程的设计就好⽐精⼼设计好⼀条流⽔线,考虑周全什么时候处理什么问题。

优点:复杂问题流程化,进⽽简单化。

缺点:可扩展性和可维护性差 适⽤:⼀般⽤于那些功能⼀旦实现之后就很少需要改变的场景,如果你只是写⼀些简单的脚本,去做⼀些⼀次性任务。

⾯向对象编程是利⽤“类”和“对象”来创建各种模型来实现对真实世界的描述。

与⾯向过程机械式的思维⽅式形成鲜明对⽐,⾯向对象更加注重对现实世界⽽⾮流程的模拟,是⼀种“上帝式”的思维⽅式。

优点:更容易扩展和修改,更容易理解缺点:编程复杂度⾼、可控性差 适⽤:应⽤于需求经常变化的软件中,⼀般需求的变化都集中在⽤户层,互联⽹应⽤,企业内部软件,游戏等都是⾯向对象的程序设计⼤显⾝⼿的好地⽅。

4.类和对象在内存中是如何保存的。

以字典的⽅式保存,代码在类定义阶段便会执⾏,因⽽会产⽣新的名称空间,⽤来存放类的变量名和函数名,可以通过__dict__查看。

__dict__查出字典,key为属性名,value为属性值5.什么是绑定到对象的⽅法、绑定到类的⽅法、解除绑定的函数、如何定义,如何调⽤,给谁⽤?有什么特性 (1)绑定到对象的⽅法:在类中定义没有加装饰器修饰的⽅法。

(完整版)面向对象分析与设计练习题含答案

(完整版)面向对象分析与设计练习题含答案

(完整版)⾯向对象分析与设计练习题含答案⾯向对象分析与设计试题B卷⼀、单项选择题( 在每⼩题的四个备选答案中,选出⼀个正确答案,并将正确答案的序号填在题⼲的括号内。

每⼩题2 分,共20 分)/* 上个世纪80年代开始⾄今还盛⾏的以Smalltalk,C++等为代表的⾯向对象软件开发⽅法(00)*/1.到20世纪末,⾯向对象软件⼯程已经逐渐发展成熟,特别是(D)的形成和⼴泛使⽤,采⽤⾯向对象分析与编程的软件开发⽅法已成为软件开发的主流⽅法。

A. Simula67语⾔(20世纪70年代的Simula-67是第⼀个⾯向对象的语⾔)B. Smalltalk语⾔(80年代初的Smalltalk语⾔)C. Java语⾔(对流⾏的语⾔进⾏⾯向对象的扩充得到的语⾔或C++)D. 统⼀建模语⾔(UML)的标准2. ⾯向对象的运动产⽣了多种⾯向对象的语⾔, 其中(C)是⼀种混合性⾯向对象语⾔, 既⽀持⾯向过程的程序设计⽅法,⼜⽀持⾯向对象的程序设计⽅法,有⼴泛应⽤的基础和丰富开发环境的⽀持,因⽽使⾯向对象的程序设计能得到很快普及。

A. SmalltalkB. EiffelC. C++D. Java3.下列不属于⾯向对象技术的基本特征的是(B)。

A. 封装性B. 模块性C. 多态性D. 继承性4. ⾯向对象程序设计将描述事物的数据与( C ) 封装在⼀起,作为⼀个相互依存、不可分割的整体来处理。

A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于⾯向对象⽅法的优点,下列不正确的叙述是(C)。

A. 与⼈类习惯的思维⽅法⽐较⼀致B. 可重⽤性好C. 以数据操作为中⼼D.可维护性好6.(D)是从⽤户使⽤系统的⾓度描述系统功能的图形表达⽅法。

A. 类图C. 序列图D. ⽤例图7. (C ) 是表达系统类及其相互联系的图⽰,它是⾯向对象设计的核⼼,建⽴状态图、协作图和其他图的基础。

A.对象图 B. 组件图 C. 类图 D. 配置图**8.(D)描述了⼀组交互对象间的动态协作关系,它表⽰完成某项⾏为的对象和这些对象之间传递消息的时间顺序。

面向对象参考题-给学生

面向对象参考题-给学生

1、面向对象的核心要素:(7个)2、封装把类构成那两个部分,又提供了哪两种保护3、消息提供了服务的哪四个方面5、下面是一个用例描述的片断:Use Case: Withdraw Cash(提取现金)参与者:Customer主事件流:1. 储户插入ATM卡,并键入密码。

2. 储户按“Withdrawal”按钮,并键入取款数目。

3. 储户取走现金、ATM卡并拿走收据。

4. 储户离开。

上述描述中存在的问题:只描述了参与者的动作序列,没有描述系统的行为。

改进的描述:7、什么是场景,一个用例可以有多少个主要场景和次要场景?8、按照耦合度从高到低,说明类之间的关系有哪些?9、标准类图中成员四个可见性分别用什么表示?10、association aggregation generalization dependency 分别代表什么关系11、给出下面带关联类类图的另一种普通类图表示。

12、给出下面带限定关联的普通类图表示13、说明类图的抽象层次,并说明三个层次都在什么时候使用?14、说明OCP原则的含义,并说明如何才能做到OCP?开闭原则OCP(Open-Close Principle)被称作是OOD的基石,是OOD最重要的原则之一。

目前,对OCP的实现,主要的一条就是抽象,就是我们常常挂在嘴边的要面向抽象(接口)。

把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规定出所有的具体类必须提供的方法的特征作为系统设计的抽象层,这个抽象层要预见所有可能的扩展,从而使得在任何扩展情况下,系统的抽象层不需修改;同时由于可以从抽象层导出一个或多个新的具体类可改变系统的行为,因此对于可变的部分,系统设计对扩展是开放的。

15、HP类、Epson类、Canon类分别表示不同的打印机,Output类与3个类关联。

运行时Output类根据当前与系统相连的哪种类型的打印机而分别使用不同类中的print()方法。

Output类中会有if…else或switch…case之类的分支结构来判断与系统相连的是哪种类型的打印机。

《面向对象程序设计》练习题及答案

《面向对象程序设计》练习题及答案

《面向对象程序设计》练习题及答案1. 单选题1. 数组的大小在创建以后( )。

A. 可以改变B. 不能改变C. 使用new方法可以改变D. 有些可以改变正确答案:B2. 已知如下代码:boolean m = true;if ( m = false ) System.out.println("False");else System.out.println("True");执行结果是( )A. FalseB. TrueC. NoneD. 出错正确答案:B3. 下列代码中,将引起一个编译错误的行是( ) 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) }12) }A. 第3行B. 第5行C. 第6行D. 第10行正确答案:D4. 如果类中的成员变量可以被同一包访问,则使用如下哪个约束符( )。

A. privateB. publicC. protectedD. no modifier正确答案:D5. 下列哪个类声明是正确的( )A. abstract final class Hl{…}B. abstract private move(){…}C. protected private numberD. public abstract class Car{…}正确答案:D6. 下列构造方法的调用方式中,正确的是( )。

A. 按照一般方法调用B. 由用户直接调用C. 只能通过new 自动调用D. 被系统调用正确答案:C7. 以下有关构造方法的说法,正确的是( )A. 一个类的构造方法可以有多个B. 构造方法在类定义时被调用C. 构造方法只能由对象中的其它方法调用D. 构造方法可以和类同名,也可以和类名不同正确答案:A8. 设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )A. 3B. 3.5C. 4D. 5正确答案:A9. 下面的表达式哪个是正确的( )A. String s="你好";int i=3; s+=i;B. String s="你好";int i=3; if(i==s){ s+=i};C. String s="你好";int i=3; s=i+s;D. String s="你好";int i=3; s=i+;正确答案:A10. 下列正确的句子是( )。

面向对象-练习题

面向对象-练习题

⾯向对象-练习题【练习题】01.类的成员变量:猜数字游戏:⼀个类A有⼀个成员变量v,有⼀个初值100。

定义⼀个类,对A 类的成员变量v进⾏猜。

如果⼤了则提⽰⼤了,⼩了则提⽰⼩了。

等于则提⽰猜测成功。

【练习题】02.类的成员变量:请定义⼀个交通⼯具(Vehicle)的类,其中有:属性:速度(speed),体积(size)等等⽅法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.最后在测试类Vehicle中的main()中实例化⼀个交通⼯具对象,并通过⽅法给它初始化speed,size的值,并且通过打印出来。

另外,调⽤加速,减速的⽅法对速度进⾏改变。

【练习题】03类的成员⽅法创建⼀个账户Account类,该类有id:账户号码(长整数) name:真实姓名字符串类型,balance:账户余额double 类型.⽅法:deposit:存款⽅法,参数是double 型的⾦额;withdraw:取款⽅法,参数是double型的⾦额.在main⽅法中创建Account类的对象,调⽤各个⽅法,并显⽰存取款结果。

【练习题】04.构造⽅法编写Java程序,模拟简单的计算器。

12 3定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为公共。

编写构造⽅法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员⽅法,分别对两个成员变量执⾏加、减、乘、除的运算。

在main⽅法中创建Number类的对象,调⽤各个⽅法,并显⽰计算结果。

【练习题】05.构造⽅法:编写Java程序,⽤于显⽰⼈的姓名和年龄。

定义⼀个⼈类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。

定义构造⽅法,⽤来初始化数据成员。

再定义显⽰(display)⽅法,将姓名和年龄打印出来。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案# Java面向对象试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?- A. class- B. interface- C. enum- D. package答案:A2. 以下哪个是Java中的继承特性?- A. 一个类可以继承多个类- B. 类可以继承接口- C. 接口可以继承类- D. 接口可以继承多个接口答案:D3. 以下哪个是Java中封装的体现?- A. 使用public关键字- B. 使用private关键字- C. 使用static关键字- D. 使用final关键字答案:B4. 在Java中,哪个关键字用于实现多态?- A. abstract- B. final- C. override- D. implements答案:C5. 以下哪个是Java的构造方法的特点?- A. 可以有返回类型- B. 可以有多个同名的构造方法- C. 必须有返回类型- D. 必须与类名相同答案:D二、简答题1. 简述面向对象编程的三大特性,并给出Java中的例子。

面向对象编程的三大特性是封装、继承和多态。

- 封装:封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。

例如,在Java中,可以通过使用private关键字来隐藏类的成员变量,只通过public方法来访问这些变量。

- 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法。

例如,如果有一个`Animal`类,可以创建一个`Dog`类继承`Animal`类。

- 多态:多态允许同一个接口接受不同的数据类型。

在Java中,可以通过重写父类的方法来实现多态。

例如,`Animal`类有一个`makeSound()`方法,而`Dog`类可以重写这个方法来发出狗的叫声。

2. 解释Java中的接口和抽象类的区别。

接口和抽象类都是Java中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

**专题5 面向对象一、填空题1.如果一个方法不返回任何值,则该方法的返回值类型为void 。

(//有无返回值的意义何在)2.如果子类中的某个方法名、返回值类型和_参数列表_____与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。

3.接口中所有的属性均为_public_、_final_____和_static__的,方法(public abstract )4.抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在具体类之中定义。

5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。

6.一般Java程序的类主体由两部分组成:一部分是属性,另一部分是方法。

7.分别用class 关键字来定义类,用new 关键字来分配实例存储空间。

8.当一个类的修饰符为final 时,说明该类不能被继承,即不能有子类。

9.在Java中,能实现多重继承效果的方式是接口。

二、选择题1.方法内定义的变量(B)。

A.一定在方法内所有位置可见B.可能在方法的局部位置可见(for循环)C.在方法外可以使用D.在方法外可见2.方法的形参()。

A.可以没有B.至少有一个C.必须定义多个形参D.只能是简单变量3.return语句()。

A.不能用来返回对象B.只可以返回数值C.方法都必须含有D.一个方法中可以有多个(但是返回只有一个)4.main()方法的返回值类型是()A.boolean B.intC.void D.static5.编译并运行下面的程序,运行结果是()。

public class A{public static void main(String args[]){A a=new A();a.method(8);}void method(int i){System.out.println(“int: ”+i);}void method(long i){System.out.println(“long: ”+i);}A.程序可以编译运行,输出结果为:“int: 8”B.程序可以编译运行,输出结果为:“long: 8”C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出6.能作为类及其成员的修饰符是()。

A.interface B.classC.protected D.public7.下列方法定义中,方法头不正确的是()。

A.public static x(double a){…} B.public static int x(double y){…} C.void x(double d){…} D.public int x(){…}8.构造方法在()时被调用。

A.类定义时B.使用对象的变量时C.调用对象方法时D.创建对象时9.下列哪个类声明是正确的()。

A.public abstract class Car{…}B.abstract private move(){…} C.protected private number; D.abstract final class H1{…} 10.下列不属于面向对象程序设计的基本特征的是()。

A.抽象B.封装C.继承D.静态11.请看下面的程序段class Person{String name,department;int age;public Person(String n){name=n;}public Person(String n,int a){name=n; age=a;}public Person(String n, String d, int a ){//doing the same as two arguments version if constructer}下面那个选项可以添加到// doing the same……处(C )A.Person(n,a)B.this(Person(n,a))C.this(n,a) D.this(name.age)12.请看下面的程序段class Test{private int m;public static void fun(){//some code}}方法fun()如何来访问变量m( C )A.将private int m 改成protected int m B.将private int m 改成public int mC.将private int m 改成static int m D.将private int m 改成int m 13.有一个类A,对于其构造函数的声明正确的是()。

A.void A(int x){…}B.public A(int x){…}C.A A(int x){…}D.int A(int x){…}14.请看下面的程序段public class Test{long a[]=new long[10];//这里没有static修饰pubic static void main(String args[]){System.out.println(a[6]);}}哪一个选项是正确的( C )。

A.不输出任何内容B.输出0C.当编译时有错误出现D.当运行时有错误出现15.关键字(B )表明一个对象或变量在初始化后不能修改。

A.extends B.finalC.this D.finalize16.声明为static的方法不能访问(C )类成员。

A.超类B.子类C.非static D.用户自定义类17.定义类A如下:class A{int a,b,c;public void B(int x,int y, int z){ a=x;b=y;c=z;}}下面对方法B的重载哪些是正确的(C )。

A.public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}B.public void B(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}C.public void B(int x,int y){ a=x;b=y;c=0;}D.public B(int x,int y, int z){ a=x;b=y;c=z;}18.编译运行下面的程序,结果是()。

public class A{public static void main(String args[]){B b=new B();b.test();}void test(){System.out.print(“A”);}}class B extends A{void test(){super.test();System.out.print(“B”);}}A.产生编译错误B.代码可以编译运行,并输出结果:ABC.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常19.已知类关系如下:Class Employee{}Class Manager extends Employee{}Class Director extends Employee{}则下列语句正确的是:()。

A.Employee e=new Manager();B.Director d=new Manager(); C.Director d =new Employee ();D.Manager m=new Director (); 20.接口是Java面向对象的实现机制之一,以下说法正确的是(B )。

A.Java支持多重继承,一个类可以实现多个接口B.Java只支持单重继承,一个类可以实现多个接口C.Java只支持单重继承,一个类可以实现一个接口D.Java支持多重继承,但一个类只可以实现一个接口21.下列方法的声明中不合法的是。

A.float area( ){…}B.void area( ){…}C.area{…}D.int area(int r){…}A. B.ng C.java.sql D.java.util23、调用构造方法是在。

A.类定义时B.创建对象时C.调用对象的方法时D.使用对象的变量时A.任何地方B.构造方法的第一条语句C.构造方法的最后一条语句D.无法在子类构造方法中调用父类的构造方法25、关于Java中的继承,下列说法错误的是。

A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。

B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。

C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。

D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。

Java中的类都采用多重继承。

26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量 C 。

A.static B.super C.this D.new27、什么样的方法不能被重写B 。

A.私有(private)方法B.最终(final)方法C.受保护(protected)的方法D.以上都不对28、下列有关抽象类与接口的叙述中正确的是哪一个 C 。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D.抽象类中的变量定义时必须初始化,而接口中不是29、从下列程序中你发现了几处错误 D 。

abstract class A{abstract void f(){};//抽象方法没有方法体。

public abstract void k();}class B extends A{protected void f(){ }//子类修饰符必须大于父类void k(){ //子类修饰符必须大于父类System.out.print("I am subclass");}public static void main(String[] args) {A a=new A();a.f();//可以在本类被调用a.k();}}A.1B.2C.3D.430、下列程序运行的结果是A 。

interface InterfaceA{ //接口AString s="good ";void f();}class ClassA implements InterfaceA{public void f(){ //修饰符必须大于接口的范围,对了System.out.print(s);}}class ClassB{void g(InterfaceA a){ //g方法传入的a为interfaceA类(接口类型引用)a.f();}}public class E {public static void main(String[] args) {ClassB b=new ClassB();b.g(new ClassA());}}A.good B.编译正确,但无运行结果C.编译错误:b.g(new ClassA())D.以上都不对31、下列类的声明中不合法的是 A 。

相关文档
最新文档