练习题(面向对象)
《面向对象》练习题.
![《面向对象》练习题.](https://img.taocdn.com/s3/m/f63717375901020206409c0c.png)
一、单项选择题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){}二、填空题(请在每小题的空格中填上正确答案。
面向对象练习题
![面向对象练习题](https://img.taocdn.com/s3/m/ed5c7f2e53d380eb6294dd88d0d233d4b14e3f23.png)
面向对象练习题及答案一、用例图1.请就以下需求建立用例图:一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。
该音像商店将存有大约1000 盘录像带和500 张光碟,这些订购涉及多家订购商。
所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。
客户可以预定录像带并在指定日期来取。
系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。
评分标准:画图格式标准3 分,用例全面正确4 分,角色与用例之间的关系正确3 分2.试用用例图描述小型图书资料管理系统。
某学院打算开发一个小型图书资料管理系统MiniLibrary,该系统基于Internet实现教师和学生对各种图书资料的借阅、查询和管理。
图书管理员负责管理各种图书资料,查询图书资料信息,并进行图书的借阅管理。
注册用户可以通过Internet 随时查询图书资料信息和个人借阅情况,预订目前借不到的图书资料,并可以快捷地查找和浏览所需要的电子资料。
系统可以提供适当的浏览器供用户阅读电子文献资料。
3.试用用例图描述系统简介:航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。
各个旅行社把预定机票的旅客信息输入到系统中,系统为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单到航空公司交款取票,系统核对无误即打印出机票给旅客。
此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。
技术要求和限制条件(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。
(2)对于本系统还应补充一下功能:1)旅客延误了取票时间的处理2)航班取消后的处理4 .请就此需求建立功能模型:某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。
面向对象程序设计考试题库
![面向对象程序设计考试题库](https://img.taocdn.com/s3/m/e443261bfc4ffe473368ab28.png)
面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。
A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为( )。
A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为( )。
A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。
A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。
A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。
java面向对象练习题
![java面向对象练习题](https://img.taocdn.com/s3/m/879bec5beef9aef8941ea76e58fafab068dc4458.png)
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面向对象练习题(打印版)](https://img.taocdn.com/s3/m/9aef8242fe00bed5b9f3f90f76c66137ee064fdc.png)
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. 为这些属性提供私有化处理,即在属性名前加上双下划线`__`。
java面向对象编程练习题及答案
![java面向对象编程练习题及答案](https://img.taocdn.com/s3/m/222ac514f6ec4afe04a1b0717fd5360cbb1a8d16.png)
java面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。
2. 描述Java中的继承是如何工作的,并给出一个继承的例子。
3. 解释Java中的多态性,并给出一个多态性的例子。
三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。
2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。
3. 创建一个名为`VehicleTest`的类,它包含`main`方法。
在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。
四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。
面向对象练习题
![面向对象练习题](https://img.taocdn.com/s3/m/c53a7c20178884868762caaedd3383c4bb4cb42c.png)
面向对象练习题一、选择题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)`。
uml面向对象的分析与设计考题与答案
![uml面向对象的分析与设计考题与答案](https://img.taocdn.com/s3/m/189056b716fc700aba68fc65.png)
u m l面向对象的分析与设计考题与答案集团文件版本号:(M928-T898-M248-WU2669-I2896-《面向对象的分析与设计》练习题一、选择题1.UML 语言不支持的建模方式有(D )。
A. 静态建模B.动态建模C. 模块化建模D. 功能建模2.一个设计得好的OO系统具有( B )。
A. 低内聚、低耦合的特征B.高内聚、低耦合的特征C. 高内聚、高耦合的特征D.低内聚、高耦合的特征3.下列不属于面向对象技术的基本特征的是( B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与 ( C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是(C )。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6.用例之间的关系不包括以下哪种关系?DA.泛化B.包含C. 扩展D. 聚集和组合7.顺序图中不包括以下哪种元素?(A)A.用例B. 对象C. 生命线D. 消息8. 用例图中不包括以下哪种元素?(B)A. 用例B. 类C. 参与者D. 关联9. 继承机制的作用是 ( C )。
A. 信息隐藏B. 数据封装C. 派生新类D. 数据抽象10. 面向对象方法学中,对象之间仅能通过(C )相联系。
A. 类B.抽象C. 消息D. 封装11. 脚本与用例之间的关系类似与(A)之间的关系。
A. 对象与类B. 参与者与用例C. 顺序图和抽象类D. 消息和对象12. 下列元素中,(D )不属于消息的组成。
A. 提供服务的对象B. 服务C. 输入信息D. 事件13. ( D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图 B. 协作图 C. 状态图 D. 顺序图14. ( D)是从用户使用系统的角度描述系统功能的图形表达方法。
面向对象_练习
![面向对象_练习](https://img.taocdn.com/s3/m/65170a27ccbff121dd3683b0.png)
课堂练习一、填空题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、什么是面向对象方法学?它有哪些优点?参考答案:面向对象方法是一种运用对象、类、继承、封装、聚合、消息、多态等概念来构造系统的软件开发方法。
(完整版)面向对象分析与设计练习题含答案
![(完整版)面向对象分析与设计练习题含答案](https://img.taocdn.com/s3/m/c99dfaac5727a5e9846a6160.png)
面向对象分析与设计试题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. 类图B. 对象图C. 序列图D. 用例图7. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图**8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
面向对象程序设计模拟练习题(含答案)
![面向对象程序设计模拟练习题(含答案)](https://img.taocdn.com/s3/m/88c2326666ec102de2bd960590c69ec3d5bbdba0.png)
面向对象程序设计模拟练习题(含答案)一、单选题(共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特有的方法。
面向对象程序设计习题
![面向对象程序设计习题](https://img.taocdn.com/s3/m/9e717a8eb04e852458fb770bf78a6529647d35ac.png)
第6章面向对象程序设计一. 选择题1.下面有关类和对象的说法中, 不对的的是【】。
A) 类是系统提供的一种数据类型B) 对象是类的实例C) 类和对象的关系是抽象和具体的关系D) 任何一个对象只能属于一个具体的类2. 面向对象的特点重要概括为【】。
A) 可分解性、可组合型性和可分类性B) 继承性、封装性和多态性C) 封装性、易维护性、可扩展性和可通用性D) 抽象性、继承性和封装性3. 要使一个类能被同一命名空间中的其他类访问, 但不能被这个命名空间以外的类访问, 该类可以【】。
A) 不使用任何修饰符B) 使用private修饰符C) 使用public修饰符D) 使用internal修饰符4. 在C#中, 【】访问修饰符修饰的字段只能由当前程序集访问。
A) private B) public C) protected D) internal5. 类的字段和方法的默认访问修饰符是【】。
A) public B) private C) protected D) internal6. 下列关于构造函数的描述中, 不对的的是【】。
A) 构造函数中, 不可以包含return语句B) 一个类只能有一个构造函数C) 实例构造函数在生成类实例时被自动调用D) 用户可以定义无参构造函数7. 下列关于构造函数的描述中, 【】是对的的。
A) 构造函数名必须与类名相同B) 构造函数不可以重载C) 构造函数不能带参数D) 构造函数可以声明返回类型8. 下列的【】不是构造函数的特性。
A) 构造函数的函数名与类名相同B) 构造函数可以重载C) 构造函数可以带有参数D) 可以指定构造函数的返回值类型9. 类ClassA有一个名为M1的方法, 在程序中有如下一段代码, 假设该段代码是可以执行的, 则声明M1方法时一定使用了【】修饰符。
ClassA Aobj=new ClassA();ClassA.M1();A) public B) public static C) private D) virtual10. 在C#中, 从属性的读写特性上来进行分类, 可以划分为以下3种, 除了【】。
面向对象程序设计综合练习题
![面向对象程序设计综合练习题](https://img.taocdn.com/s3/m/266684f0ed630b1c58eeb56e.png)
面向对象程序设计综合练习题一、单项选择题1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( B )。
A.面向过程 B.面向对象 C.安全性 D.复用性 1-2. C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cpp B. exe C. obj D. lik1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cpp B. exe C. obj D. lik1-5.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接1-6.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车1-7.C++中声明常量的关键字是( A )。
A.const B.extern C.public D.enum 1-8.以下叙述中正确的是( B )A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C.在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值1-9.下列的符号常变量定义中,错误的定义是( C )。
A.const M=10; B.const int M=20;C.const char ch; D.const bool mark=true; 1-10.函数原型语句正确的是( B )。
A.int Function(void a) B.void Function (int); C.intFunction(a); D.void int(double a); 1-11.以下正确的函数原型语句是( C )。
面向对象基本练习题
![面向对象基本练习题](https://img.taocdn.com/s3/m/abb78496e009581b6ad9eb68.png)
a)具有属性:姓名,年龄,性别和专业
b)具有方法:自我介绍,负责输出该教员的年龄,姓名,性别和专业
c)具有两个带参的构造方法,第一个构造方法中,设置教员的性别为男,专业为Java,其余属性的值由参数给定,第二个构造方法中,所有属性的值都由参数给定
d)编写测试类Teacher2Test,分别以两种方式完成对两个Teacher2对象的初始化工作,并分别调用它们的自我介绍方法,看看输出结果是否正确
2.设计Bird、Fish类,都继承自抽象类Animal,实现其抽象方法info(),并打印它们的信息,如下图所示:
提示:
A.定义抽象类Animal,具有age属性、info方法
B.义Fish类,具有本身的特有属性:wdight
3.请使用多态实现以下需求:牛犇有两个很好的朋友,一个是中国的王小强,,喜欢吃四川菜,练太极拳;一个是美国的约翰,喜欢吃披萨,打橄榄球。每当朋友来拜访牛犇时,牛犇都会按照各人的喜好招待他们。
《面向对象程序设计(Java)》综合练习题
![《面向对象程序设计(Java)》综合练习题](https://img.taocdn.com/s3/m/70afa9e64afe04a1b071deeb.png)
《面向对象程序设计(Java)》综合练习题一、判断题1、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
2、对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3、有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4、类及其属性、方法可以同时有一个以上的修饰符来修饰。
5、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点.6、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7、final类中的属性和方法都必须被final修饰符修饰。
8、最终类不能派生子类,最终方法不能被覆盖。
9、子类要调用父类的方法,必须使用super关键字。
10、一个Java类可以有多个父类。
11、创建新的类对象用new,回收无用的类对象用free。
12、虽然有的类定义时可不定义构造函数,但构造函数是必需的。
13、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
14、final类中的属性和方法都必须被final修饰符修饰。
15、子类要调用父类的方法,不必用super关键字。
16、如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
17、当一个方法在运行过程中产生一个异常,则这个方法会终止,但整个程序不一定终止运行。
18、用+可以实现字符串的拼接,用-可以从一个字符串中去除一个字符子串。
19、设String对象s=”Hello”,运行语句System.out.println(s.concat(“w orld!”));后String对象s的内容为”Hello world!”,所以语句输出为:Hello world!20、一个容器中可以混合使用多种布局策略。
参考答案:1、×2、×3、×4、√5、×6、×7、×8、√9、×10、×11、×12、√13、×14、×15、√16、×17、√18、×19、×20、√二、单选题1、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()A、可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B、只能被该类自身所访问和修改C、只能被同一个包中的类访问D、可被两种类访问和引用:该类本身、该类的所有子类2、下列关于修饰符混用的说法,错误的是()A、static方法中能处理非static的属性B、abstract方法必须在abstract类中C、abstract类中不可以有private的成员D、abstract不能与final并列修饰同一个类3、容器Panel和Applet缺省使用的布局编辑策略是()A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout4、main方法是Application的入口点,以下main方法的方法头合法的是()A、public static void main( )B、public static int main(String[ ] args)C、public static void main(String[ ] arg)D、public void main(String arg[ ])5、以下代码段执行后的输出结果为()int x=3; int y=10; System.out.println(y%x);A、0B、1C、2D、36、编译运行以下程序后,关于输出结果的说明正确的是()public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9 : 9));}}A、输出结果为:value is 99.99B、输出结果为:value is 9C、输出结果为:value is 9.0D、编译错误7、以下声明合法的是()A、public final static native int w( );B、default String s;C、abstract final double hyperbolicCosine( );D、abstract double d;8、关于以下程序代码的说明正确的是()1.class HasStatic{2.private static int x=100;3.public static void main(String args[ ]){4.HasStatic hs1=new HasStatic( );5.hs1.x++;6.HasStatic hs2=new HasStatic( );7.hs2.x++;8.hs1=new HasStatic( );9.hs1.x++;10.HasStatic.x- -;11.System.out.println(“x=”+x);12.}13.}A、5行不能通过编译,因为引用了私有静态变量B、10行不能通过编译,因为x是私有静态变量C、程序通过编译,输出结果为:x=102D、程序通过编译,输出结果为:x=1039、类Test1定义如下:1.public class Test1{2.public float aMethod(float a,float b){ }3.4.}将以下哪种方法插入行3是不合法的()A、public float aMethod (float a,float b,float c) { }B、p ublic float aMethod (float c,float d) { }C、p ublic int aMethod (int a,int b) { }D、private float aMethod (int a,int b,int c) { }10、关于以下程序段,正确的说法是()1.String s1=”abc” + ”def”;2.String s2=new String(s1);3.if (s1= =s2)4.System.out.print ln(“== succeeded”);5.if (s1.equals(s2))6.System.out.println(“.equals() succeeded”);A、行4与行6都将执行B、行4执行,行6不执行C、行6执行,行4不执行D、行4、行6都不执行11、被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是()A.可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问12、以下标识符中哪项是不合法的()A、BigMeaninglessNameB、$intC、3kuD、$113、执行完以下代码int [ ] x = new int[25];以下哪项说明是正确的()A、x[24]为0B、x[24]未定义C、x[25]为0D、x[0]为空14、以下哪个表达式是不合法的()A、String x=”Hello”; int y=9; x+=y;B、String x=”Hello”; int y=9; if(x= =y) { }C、String x=”Hello”; int y=9; x=x+y;D、String x=null; int y=(x!=null)&&(x.length>0) ? x.length : 015、一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可不相同。
面向对象习题
![面向对象习题](https://img.taocdn.com/s3/m/d02e95a2b0717fd5360cdcd1.png)
单项选择题1.什么不是面向对象程序设计的主要特征(D)A.封装B.继承 C 多态D结构2.UML中有四种关系是:依赖,泛化,关联和(C)A.继承 B.合作 C.实现 D.抽象3. 在UML中,(B)图显示了一组类,接口,协作以及它们之间的关系.A. 状态图B.类图C.用例图D.部署图4. 软件生存期包括计划,需要分析和定义(B),编码,软件测试和运行维护.A. 软件开发B.软件设计(详细设计) C软件支持D软件定义5. ( A )模型的缺点是缺乏灵活性,特别是无法解决软件需要不明确或不准确的问题.A.瀑布模型B原型模型 C 增量模型D螺旋模型6. 下图是(B)A类图B用例图C活动图D状态图7.下面哪个不是UML中的静态视图(A)A. 状态图B用例图C对象图D类图8.下列关于状态图的说法中,正确的是(C)A.状态图是UML中对系统的静态方面进行建模的五种图之一.B. 状态图是活动图的一个特例,状态图中的多数状态是活动状态.C.活动图和状态图是对一个对象的生命周期进行建模,描述对象活动时间变化的行为.D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个瓜型对象建模.9.对反应型对象建模一般使用(A)图A.状态图B顺序图C活动图D类图10.类图应该画在Rose的哪种视图中(B)A. Use Case View B.Logic View C .Component View D. Deployment View11.类通常可以分为实体类,(C)和边界类.A. 父类B.子类C控制类D祖先类12.顺序图由类角色,生命线,激活期和(B)组成A.关系B.消息C.用例D.实体13.( D)是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现.A部署图 B.类 C.接口D.组件14.关于协作图的描述,下列哪个不正确(B)A.协作图作为一种交互图,强调的是参加交互的对象的组织.B. 协作图是顺序图的一种特例.C. 协作图中有消息流的顺序号.D. 在Rose工具中,协作图可在顺序图的基础上按”F5”键自动生成.15.(C)是一组用于描述类或组件的一个服务的操作.A.包 B. 节点 C. 接口 D.组件16. 一个对象和另一个对象之间,通过消息来进行通信,消息通信在面向对象的通信中C17. D18. 下图中的空心箭头连线表示(A)关系A.泛化 B 包含C扩展D实现19.组件图展现了一组组件之间组件和依赖,它专注于系统的(B)实现图.A.动态 B.静态 C 基础D实体20. 下列关于类方法的声明,不正确的是 ( C )A.方法定义了类所许可的行动B.从一个类所创建的所有对象可以使用同一组属性和方法C.每个方法应该有一个参数D.如果在同一个类中定义了类似的操作,则他们的行为应该是类似的第二题:填空1.面向对象系统包含的3个要素有:对象,类和继承.2.OOA模型的五个层次有:主题层,结构层,服务层,属性层和类及对象层.3.UML的全称是:Unified Modeling Language4.组件是被节点执行的事物.5.构造,析构6.UML提供一系列的图支持面向对象的分析与设计,其中(类图)给出系统的静态设计视图;(用例图)对系统的行为进行组织和建模是非常重要的;(序列图)和(协作图)都是描述系统动态视图的交互图,其中(序列图)描述了以时间顺序组织的对象之间的交互活动,(协作图)强调收发消息的对象的组织结构.7.在协作图中通过(消息编号)表示出消息的时间顺序.8.UML中的交互图有顺序图和协作图两种.9.在UML提供的图中,(用例图)用于描述系统与外部系统及用户之间的交互,(序列图)用于按时间顺序描述对象间的交互.10. 用例图的建模步骤包括寻找参与者,确定用例,分析关系,细化用例规约,精化用例模型.11. 时序图包括对象或(Object),生命线或(Lifeline),激活或(Activation),消息或(Messsage) 12. RUP开发过程中各阶段的核心工作流包括:初始阶段,细化阶段,构造阶段.13. 标准建模语言UML的重要内容可以由哪五类图(共9种图形)来定义:用例图,静态图(包括类图,对象图和包图),行为图,交互图和实现图.14. 动态视图包含交互图和行为图,交互图包括时序图,协作图,状态图和活动图.第三题:分析题1、下面那些特征不能被派生类继承。
java面向对象编程练习题答案
![java面向对象编程练习题答案](https://img.taocdn.com/s3/m/2c8ddd757275a417866fb84ae45c3b3566ecdd45.png)
java面向对象编程练习题答案1. 面向对象编程中的三大特性是什么?A. 封装、继承、多态B. 抽象、封装、多态C. 封装、继承、抽象D. 继承、多态、抽象2. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. enumD. struct3. 以下哪个是Java中正确的构造方法定义?A. public void MyClass()B. public int MyClass()C. public MyClass()D. public MyClass(int value)4. 在Java中,以下哪个关键字用于实现封装?A. publicB. privateC. protectedD. static5. 以下哪个是Java中正确的继承方式?A. class Child extends ParentB. class Child extends ChildC. class Parent extends ChildD. class Child extends6. 多态在Java中是如何实现的?A. 通过继承B. 通过接口C. 通过重载D. 通过重写7. 在Java中,以下哪个关键字用于定义一个接口?A. classB. interfaceC. abstractD. enum8. 以下哪个是Java中正确的抽象类定义?A. public class MyClass {}B. public abstract class MyClass {}C. public abstract void MyClass()D. public abstract class MyClass { public abstract void method(); }9. 以下哪个是Java中正确的接口实现方式?A. class MyClass implements MyInterface {}B. class MyClass extends MyInterface {}C. interface MyInterface implements MyClass {}D. class MyClass implements MyClass {}10. 在Java中,以下哪个关键字用于定义一个静态方法?A. staticB. abstractC. finalD. synchronized11. 以下哪个是Java中正确的方法重载示例?A. public void display(int a, int b)B. public int display(int a, int b)C. public void display(int a)D. All of the above12. 在Java中,以下哪个关键字用于定义一个方法的返回类型?A. returnB. voidC. intD. method13. 以下哪个是Java中正确的方法重写示例?A. public void display() { super.display(); }B. public void display(int a) { super.display(a); }C. public void display() { System.out.println("Hello"); }D. public void display() {}14. 在Java中,以下哪个关键字用于定义一个类变量?A. staticB. finalC. privateD. protected15. 以下哪个是Java中正确的类变量访问方式?A. MyClass.variableB. new MyClass().variableC. MyClass().variableD. variable16. 在Java中,以下哪个关键字用于定义一个不可变变量?A. staticB. finalC. volatileD. transient17. 以下哪个是Java中正确的类方法定义?A. public void method() {}B. public static void method() {}C. public void MyClass.method() {}D. public static MyClass method()18. 在Java中,以下哪个关键字用于实现单例模式?A. synchronizedB. finalC. staticD. private19. 以下哪个是Java中正确的单例模式实现方式?A. public class Singleton { private static Singleton instance = new Singleton(); }B. public class Singleton { public static Singleton getInstance() { return new Singleton(); } }C. public class Singleton { private static Singleton instance; public static synchronized Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } }D. All of the above20. 在Java中,以下哪个关键字用于定义一个枚举类型?A. enumB. classC. interfaceD. struct答案:1. A2. A3. C4. B5. A6. D7. B8. D9. A10. A11. D12. B13. A14. A15. A16. B17. B18. D19. C20. A。
面向对象-练习题
![面向对象-练习题](https://img.taocdn.com/s3/m/d0e6bd096ad97f192279168884868762cbaebb53.png)
⾯向对象-练习题【练习题】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)⽅法,将姓名和年龄打印出来。
面向对象编程练习题库_test
![面向对象编程练习题库_test](https://img.taocdn.com/s3/m/04527e3776a20029bc642dbd.png)
面向对象编程练习题专题1 初识Java一、填空题1.自从Sun推出Java以来,按应用围可分为三个版本,分别是()、()、()。
2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。
3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。
4.如果Java源文件中有多个类,那么只能有一个类是()类。
二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[])2.下面命令正确的是()A.java AppFirst.java B.java AppFirstC.java appfirst.class D.javac AppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。
A.bin B.jre C.include D.doc5.Java语言是一种语言。
A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是( )。
A.函数B.过程C.变量D.类7.main()方法的返回值类型是()。
A.boolean B.int C. voidD.static8. 下面哪个单词是Java语言的关键字()A.False B.FOR C.For D.for9. 、线程是Java的()机制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《JAVA练习题》面向对象一、判断正误:1.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。
2.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void.3.任何类都必须显式地定义该类的构造方法,以便对类的成员进行各种初始化操作。
4.运行下面程序将在控制台窗口中输出a。
public class A{public A ( ){char c=’a’;}public static void main(String args[ ]) {System.out.println( c );}}5.如果在定义一个类的时候没有用到关键字extends,则这个类没有直接父类。
6.在同一个类中,不允许存在具有相同方法名和相同参数类型列表的方法,即使该方法的返回类型不相同。
7.抽象方法不能含有方法体,并且必须在抽象类中。
8.抽象类是不能实例化的,抽象类的实例化,应当通过其不具有抽象属性的子类来创建。
二、填空:1.面名对象的计算机语言一般应具有3个基本特征,分别是__________________。
2.在下面的程序编译之后,按“java A 1 2 3”方式运行的结果是:_______。
public class A {public static void main(String args[ ]) {int i;for(i=0;i<args.length;i++){System.out.println(“args[“+i+”]=”+args[i]+”;”);}}}3.请按要求完成下面的程序,最终该程序的输出结果是:________。
class A {public int m;public A(int d){ m=d; }}public class B extends A {public int n;public B(int ds, int d) {____________________// 要求将其父类的成员m初始化为ds的值n=d;}public static void main(String args[ ]) {B s=new B(2,3);System.out.println(s.n+s.m);} }4.下面程序输出的结果是_______。
public class A {static int m=0;public int s( ) {m++;return m;}public static void main(String args[ ]) {A a=new A( );A b=new A( );A c=new A( );a.s ( );b.s ( );c.s ( );int i=a.s( );System.out.println(i); }}三、选择题:1.对于下面哪些类定义,可以通过“new A( )”生成类“A”的实例对象?A.public class A{}B.public class A{ public A(void) { }}C.public class A{public A(String s) {}}D.public class A{public void A ( ) { }public A(String s) {}}2.关于下面程序,哪些结论是正确的?()public class A {public A( ) {System.out.print(“2”);}public static void main(String args[ ]) {A s=new A( );s.A( );System.out.print(“1”); } }A.程序可以通过编译并正常运行,结果输出“21”。
B.程序可以通过编译并正常运行,结果输出“221”。
C.程序无法通过编译。
D.程序可以通过编译,但无法正常运行。
3. 下面程序的输出是什么?public class A {int m=2;String s=null;A( ){ m=3;s=”constructor”; }public static void main(String args[ ]) {A app=new A( );System.out.println(app.m+app.s);}}A.3nullB.3constructorC.编译错误D.2null4. 下面程序的输出是什么?class A {int m=2;String s=null;void A( ){ m=3;s=”constructor”; }public static void main(String args[ ]) {A app=new A( );System.out.println(app.m+app.s);}}A.3nullB.3constructor C编译错误 D.2null5.己知字母‘a’和‘b’所对应的数值分别是97和98。
关于下面程序代码,哪些选项的结论是正确的?public class A {static char name;static int age;public static void setData(char n) {name=n;}public static void setData(int m) {age=m;}public static void main(String args[ ]) {setData((int)’a’);setData((char)98);System.out.println(“Name:”+name+”; Age:”+age);}}A.程序可以通过编译并正常运行,结果输出“Name:a; Age:98”B.程序可以通过编译并正常运行,结果输出“Name:b; Age:97”C.程序可以通过编译并正常运行,结果输出“Name:b; Age:98”D.程序可以通过编译并正常运行,结果输出“Name:a; Age:97”E程序无法通过编译6.关于下面程序,哪些选项的结论是正确的?class A{public abstract void m( );}class B extends A {public void m( ){ System.out.print(“1”);}}class C extends A {public void m( ){ System.out.println(“2”);}}public class T{public static void main(String args[]){ A d=new A();d.m( );d=new B( );d.m( ); }}A.程序可以通过编译并正常运行,结果输出“12”。
B.程序可以通过编译并正常运行,结果输出“11”。
C.程序无法通过编译,因为类型转换不合法。
D.程序无法通过编译,因为类A的定义不对。
7.下面程序的输出是什么?class A{static int m=0;}class T{public static void main(String args[ ]) {A a=new A( );A b=new A( );a.m=1;b.m=2;System.out.println(a.m);}}A.0B.1C.2D.上面的程序含有编译错误8.设在一个Java包Kit1中含有源程序文件A.java,其内容如下:package kit1;public class A {public A( ) {System.out.print(“1”); }}在另一个包中含有源程序文件B.java,其内容如下:package kit2;import kit1.A;public class B extends A {public B( ){ System.out.print(“2”);}public static void main(String args[ ]) {B t=new B( );} }A.程序可以通过编译并正常运行,结果输出“12”B.程序可以通过编译并正常运行,结果输出“21”C.程序可以通过编译并正常运行,结果输出“2”D.程序无法通过编译9.设在一个Java包Kit1中含有源程序文件A.java,其内容如下:package kit1;class A {public A( ) {System.out.print(“1”); }}在另一个包中含有源程序文件B.java,其内容如下:package kit2;import kit1.A;public class B extends A {public B( ){ System.out.print(“2”);}public static void main(String args[ ]) {B t=new B( );} }A.程序可以通过编译并正常运行,结果输出“12”B.程序可以通过编译并正常运行,结果输出“21”C.程序可以通过编译并正常运行,结果输出“2”D.程序无法通过编译。