面向对象技术(答案)

合集下载

面向对象试题(标准答案)

面向对象试题(标准答案)

CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。

A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。

面向对象答案

面向对象答案

一、填空题101 Java中一个类可以有 1 个父类。

102 如果一个类的声明中没有使用extends关键字,这个类被系统默认为是Object 类的子类。

103 子类自然地继承了其父类中不是private 的成员变量作为自己的成员变量。

104 当子类中定义的成员变量和父类中的成员变量同名时,子类的成员变量隐藏了父类的成员变量。

105 子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变为自身的状态和行为。

106 对于重写或继承的方法,Java运行时系统根据调用方法的实例的类型来选择调用哪个方法。

107 对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类的方法。

108 对于子类创建的一个对象,如果子类继承了父类的方法,未重写,则运行时调用父类的方法。

109 在Java语言中多态性体现在由方法重载实现的静态多态性和方法重写实现的动态多态性。

110 final 类不能被继承,即不能有子类。

111 abstract 类不能创建对象,必须产生其子类,由子类创建对象。

112 如果一个方法被修饰为final 方法,则这个方法不能被重写。

113 对于abstract 方法,只允许声明,而不允许实现。

114 如果一个方法被修饰为final方法,则这个方法不能被重写。

115 如果一个类是一个abstract类的子类,它必须具体实现父类的abstract方法。

116 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字this 。

117 在关键字中能代表当前类或对象本身的是this 。

118 如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字super 。

119 子类如果想用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super 来表示。

120 如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字super 。

121 Java中为了克服单继承的缺点,使用了接口,一个类可以实现多个接口。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题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`方法以显示电动汽车启动的信息。

C++面向对象技术复习题汇总(含答案)

C++面向对象技术复习题汇总(含答案)

面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理.A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是( )A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]=’a’;B、name=”lin”;C、name=new char[5]; D、cout<〈name[3];7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:( )A、name[3]=’q';B、name=”lin”;C、name=new char[5];D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;,下面的语句中错误的是:( )A、name[3]=’q’;B、name=”lin”;C、name=new char[5];D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板( )template 〈class T>T max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了( )A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cin〉〉x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y){……}(2) int f(int a,float b){…… }(3) int f(int i,int j){……}(4) float k(int x){…… }是重载函数。

java面向对象填空题(含答案)

java面向对象填空题(含答案)

一、java面向对象(50个)易:1.对象是由一组属性和对这组属性进行(操作)的一组服务组成的。

2.对象是指(具体)的事物,而类是指一类具有某种共性的事物。

3.由类来确定具体对象的过程称为类的(实例化)。

4.一个类由类声明和(类体)两部分组成。

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

6.Java程序在extends之后只能有一个父类,即extends只能实现(单)继承。

7.在Java中只能实现单继承,但可通过(接口)实现多重继承。

8.一个类可实现多个接口,各接口名是以(,)分隔。

9.在类体中声明的变量称为(成员)。

10.在方法中声明的变量称为(局部变量)。

11.在Java程序中,使用关键字(this)来引用当前对象。

12.一个方法的定义是由方法声明和(方法体)两部分组成。

13.方法声明包括(方法名)、返回类型和形式参数。

14.构造方法的方法名要求与(类名)相同,而且无返回值。

15.面向对象的三个特性是:封装性、继承性和(多态性)。

16.在Java中,通过对象的(封装),实现了模块化和信息隐藏。

17.两个方法具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同,则称为方法的(重写)。

18.Java中通过关键字(super)来实现对父类成员的访问。

19.Java用( extends)关键字指明继承关系。

20.在Java中,用关键字(abstract)来修饰一个类,则该类为抽象类。

21.若某个类包含了抽象方法,则该类必须被定义为(抽象)类。

22.接口的定义,需使用关键字(interface)来声明。

23.声明父类时,需使用关键字(extends)来实现。

24.java语言中接口是特殊的类,其中包含常量和(抽象)方法。

25.当要引用包中所有的类时,类名可以用通配符(* )号代替。

26.一个类要从另一个类继承变量和方法,必须使用关键字(extends)。

27.(抽象)类不能被实例化,它不具备实际功能,只用于衍生子类。

面向对象期末考试题及答案

面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。

答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。

面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。

通过对象之间的交互来实现程序的功能。

2. 解释什么是多态性,并给出一个简单的例子。

答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。

例如,在Java中,可以通过重载和重写来实现多态。

假设有一个动物类Animal,它有一个方法makeSound()。

然后有一个子类Dog,它重写了makeSound()方法。

当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。

3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。

封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。

三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。

软件工程专业《面向对象技术》课程的课后作业参考答案(第4部分)

软件工程专业《面向对象技术》课程的课后作业参考答案(第4部分)

}
public void run(){ //结束条件设定为,当卡内资金大于 100 元时,线程 OVER while(this.mycard.getMoney()<=100){ AddSystem.addMoney(this.mycard); } System.out.println("资金大于 100 元,该线程 OVER"); System.out.println("");
}
public void addMoney(float addmoney){
money=money+addmoney;
//金额累加:
System.out.println("充值完毕,增加了"+addmoney+"元钱lass Student extends Thread{
money=0; id=0; name="No"; }
Card(int id, String name){ money=0;
this.id=id;
=name; }
public float getMoney(){
return money; }
public void dispInformation() { System.out.println("该一卡通考号为:"+id+"号");
}
public void dispInformation() { System.out.println("******************************"); System.out.println("该学生的基本信息如下:"); System.out.println("姓名-------:"+name);

面向对象课后题答案

面向对象课后题答案
C. 使用内联函数,可以加快程序执行的速度,但会增加程序代码的大小
D. 使用内联函数,可以减小程序代码大小,但使程序执行的速度减慢
【结果分析】
内联函数主要是解决程序的运行效率问题。在程序编译时,编译系统将程序中出现内联函数调用的地方用函数体进行替换,进而减少了程序运行的时间,但会增加程序代码的大小。它是以空间换取时间,因此内联函数适用于功能不太复杂,但要求被频繁调用的函数。
B. 对象实际是功能相对独立的一段程序
C. 各个对象间的数据可以共享是对象的一大优点
D. 在面向对象的程序中,对象之间只能通过消息相互通信
【结果分析】
对象是计算机内存中的一块区域。在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。对象之间存在各种联系,但它们之间只能通过消息进行通信。
C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的
【结果分析】
C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。
(6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。
A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象
四、 判断题
(1) 在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。( √ )
(2) C++语言只支持面向对象技术的抽象性、封装性、继承性等特性,而不支持多态性。( × )
【结果分析】
C++语言不仅支持面向对象技术的抽象性、封装性、继承性等特性,而且支持多态性。

面向对象 期末考试 答案

面向对象  期末考试 答案

、填空(15分)1、类之间的静态联系称作关联。

・在实例化后,由类产生对象,链是关联的实例。

・在系统实现时,关联釆用对象的属性来实现。

2、用例图用于建立需求模型,描述用户的需求。

对象图是面向对象分析中的基本模型,属于静态结构模型。

3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。

4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约5、表示[可见性]属性名[:类型][=初始值]可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、〜(包,只有在同一包中声明的类能够使用这一属性)。

二、名词解释(15分)1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。

2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。

类的作用是用来创建对象,对象是类的一个实例。

3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。

4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。

(“同名不同参”或“同名不同类”)5、OOA模型:就是诵过面向对象的分析所律立的系统分析模型。

用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。

(三、简答(45分)1、继承和泛化关系特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。

一般类对特殊类的抽象关系叫泛化关系(简称泛化)。

2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。

而关联没有组成关系或拥有关系。

如例题中的c图3、简述下图中体现的面向对象的基本思想0■■半0.法律顾问汽车。

山东师范大学面向对象技术期末考试试卷及参考答案

山东师范大学面向对象技术期末考试试卷及参考答案

山东师范大学成人高等教育期末考试试题年级:专业:考试科目:面向对象技术试题类别:A卷考试形式:闭卷一、多选题:下列题中有一个或多个正确答案,请将正确答案的编号填在括号里。

(共60分)1.状态图中常用的动作有()A.动作B.入口动作C.出口动作D.触发动作2.UML中表示类之间“关系”的视图有()A.关联B.泛化C.依赖D.实现3.用例描述中包含的内容有()A.发起用例的参与者B.用例的前置条件C.用例的后置条件D.从用例中获益的参与者4.类之间的关系包括()A.链B.继承C.多重性D.聚集5.完整的类可视化表示包括元素()A.职责和约束B.属性C.操作D.接口6.在UML提供的图中,用于描述系统与外部系统及用户之间的交互的是()A)用例图B)类图C)对象图D)部署图7.UML背后的两个重量级概念是。

()A)类B)用例C)面向过程D)面向对象8.用例是从____的观点对系统行为的一个描述。

()A)用户B)类C)系统D)对象9.关于用例对于系统开发来说的存在价值,以下说法正确的是。

()A)便于从用户的观察角度收集系统需求B)使系统更符合用户的需求C)禁止了分析员与用户的交流D)便于分析员与客户和用户交流10.以下哪些标记符在活动图中存在。

()A)事件触发器B)分叉与汇合C)泳道D)决策点11.用UML建立业务模型是理解企业业务过程的第一步。

业务人员扮演业务中的角色及其交互方式,表示企业业务的工作流。

这种图显示出工作流中的步骤、决策点,以及完成每一步骤的角色和对象。

这种图是以下哪种图。

()A)活动图B)交互图C)用例图D)状态图12.面向对象理论中,对象之间发送信号,在UML状态图里就是。

()A)入口动作B)事件C)状态D)出口动作13.在建模过程中,得到初步类图和细化类图分别在什么阶段,以下说法正确的是。

()A)前者在需求收集阶段,后者在需求分析阶段。

B)都是在需求收集阶段。

C)都是在需求分析阶段。

Java 面向对象编程练习题及答案

Java 面向对象编程练习题及答案

Java 面向对象编程练习题及答案题目一:洗衣机类设计描述:设计一个洗衣机类,具有以下属性和方法:属性:- 品牌(brand):字符串类型,表示洗衣机的品牌- 容量(capacity):整型,表示洗衣机的容量(以公斤为单位)- 是否开机(isOn):布尔类型,表示洗衣机是否处于开机状态方法:- 开机(turnOn):将洗衣机的状态设置为开机- 关机(turnOff):将洗衣机的状态设置为关机- 洗衣服(washClothes):接收一个整型参数 clothesWeight,表示待洗衣物的重量(以公斤为单位)。

如果洗衣机处于开机状态,并且洗衣机容量足够洗这些衣物,则打印出洗衣机正在洗衣服;否则,打印出洗衣机无法洗衣物。

答案一:```javapublic class WashingMachine {private String brand;private int capacity;private boolean isOn;public WashingMachine(String brand, int capacity) { this.brand = brand;this.capacity = capacity;this.isOn = false;}public void turnOn() {this.isOn = true;}public void turnOff() {this.isOn = false;}public void washClothes(int clothesWeight) {if (isOn && clothesWeight <= capacity) {System.out.println("洗衣机正在洗衣服");} else {System.out.println("洗衣机无法洗衣物");}}}```题目二:学生类设计描述:设计一个学生类,具有以下属性和方法:属性:- 姓名(name):字符串类型,表示学生的姓名- 年龄(age):整型,表示学生的年龄- 成绩(score):整型,表示学生的成绩方法:- 构造方法(Constructor):接收姓名、年龄和成绩作为参数,创建一个学生对象- 获取姓名(getName):返回学生的姓名- 获取年龄(getAge):返回学生的年龄- 获取成绩(getScore):返回学生的成绩答案二:```javapublic class Student {private String name;private int age;private int score;public Student(String name, int age, int score) { = name;this.age = age;this.score = score;}public String getName() {return name;}public int getAge() {return age;}public int getScore() {return score;}}```题目三:图书馆管理系统设计描述:设计一个图书馆管理系统,包含图书(Book)、图书馆(Library)和借阅者(Borrower)三个类。

面向对象第四次作业答案

面向对象第四次作业答案

面向对象第四次作业答案面向对象程序设计技术作业四一、填空题1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的构造函数使其初始化。

2、当一个类对象被撤消时将自动调用该类的析构函数。

3、对基类数据成员的初始化是通过执行派生类构造函数中的初始化表来实现的。

4、对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的赋值语句实现。

5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先基类成员,后类对象成员,最后为非对象成员。

6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成派生类本身的析构函数定义体的执行,接着完成类对象成员的析构函数定义体的执行,最后完成基类成员的析构函数定义体的执行。

7、设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的析构函数。

8、当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。

9、假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为N次。

10、假定AB为一个类,则执行”AB a[10];”语句时,系统自动调用该类构造函数的次数为10次。

11、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为空构造函数。

12、假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为空构造函数。

13、若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:friend void F();。

14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:feiend class AB;。

15、假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为AB:bb=0;。

16、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为AB:bb 。

java面向对象试题及答案(二)

java面向对象试题及答案(二)

java面向对象试题及答案(二)1. 什么是面向对象编程?- 面向对象编程(Object-Oriented Programming,OOP)是一种编程思想,它将现实中的事物抽象成对象,并通过对象之间的交互来完成程序的设计和实现。

2. 面向对象编程的特点有哪些?- 封装性:将数据和方法封装在一起,对外部隐藏实现细节,只提供公共接口。

- 继承性:通过继承可以实现代码复用,减少重复编写代码的工作量。

- 多态性:同一种方法可以有不同的实现方式,提高程序的灵活性和可扩展性。

3. 什么是类和对象?- 类是一种抽象的数据类型,它描述了一类事物的属性和行为。

- 对象是类的一个实例,具有该类所描述的属性和行为。

4. 什么是继承?- 继承是一种机制,它允许新的类在已有类的基础上进行扩展,从而实现代码的复用和扩展性的提高。

5. 什么是多态?- 多态是指同一个方法可以有不同的实现方式,具体的实现方式由调用该方法的对象决定。

6. 什么是重载和重写?- 重载是指在同一个类中定义多个同名方法,但参数列表不同,可以根据参数列表的不同来调用不同的方法。

- 重写是指在子类中重新定义父类中已有的方法,使得子类对象调用该方法时执行子类中的实现。

7. 什么是抽象类和接口?- 抽象类是一种不能被实例化的类,它只能被继承,用于定义一些抽象的方法和属性,子类必须实现这些抽象方法和属性才能被实例化。

- 接口是一种只包含抽象方法和常量的抽象类型,它定义了一些规范,子类必须实现这些抽象方法才能被实例化。

8. 什么是异常?- 异常是指程序在运行过程中出现的错误或意外情况,它会导致程序的中断或崩溃。

Java提供了异常处理机制,可以捕获和处理异常,保证程序的正常运行。

9. 什么是泛型?- 泛型是一种抽象的数据类型,它可以用来定义一种通用的类型,使得代码可以更加灵活和可扩展。

泛型可以在编译时检查类型安全,减少运行时错误。

10. 什么是反射?- 反射是指在程序运行时动态地获取类的信息,包括类的属性、方法和构造器等,可以在运行时动态地创建对象、调用方法和访问属性。

面向对象答案

面向对象答案

C/C++规定,在一个源程序中,main()函数的位置。

C. 可以任意C/C++语言规定,变量的引用做为形参时,实参它与对应形参之间的数据传递方式是D)实参和行参共用同一地址空间C/C++语言规定,简单变量做为参数时,实参与它对应形参之间的数据传递方式是A)单向值传递不论派生类以何种方式继承基类,都不能直接使用基类的B. private成员成员。

当派生类保护继承一个基类时,基类中的公有成员和保护成员成为派生类的B. 保护成员。

关于静态数据成员的描述不正确的是C. 静态数据成员初始化时一定要在前面加修饰符static。

关于模板,下列描述错误的是A. 函数模板必须由程序员实例化为可执行的模板函数。

含有纯虚函数的类被称为B. 抽象类假设Person是类p1是该类的对象p2是指向p1的指针getname()是该类的公有成员函数,不正确的是A. Person. getname()。

假设有定义char ch;下列输人字符的方法不正确的是C. cin>>get(ch);。

若变量 x 定义为 int 类型,y 定义为 double 类型,则表达式(x>3) ? x : y 的数据类型为B.double若函数的类型和return语句中的表达式的类型不一致,则D. 不会出错,且返回值的类型以函数类型为若函数的形参为一维数组,则下列说法中错误的是D. 函数中对形参数组元素的修改不会影响实参数组元素的值。

若有int x=13, y=5,则表达式: x++, y+=2, x / y的值为B. 2。

设X为整型变量,不能正确表达数学关系1<X<5的C++逻辑表达式是A. 1<X<5。

设有变量定义:int a=1,b=2,c=3,d=4; 则以下表达式的值为A. 1设有定义语句:int a=3, b, *p=&a;要将变量a的值赋给变量b,下列语句中不正确的赋值方式是D. b = *a;。

java面向对象程序设计考试题及答案

java面向对象程序设计考试题及答案

java面向对象程序设计考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义类的属性?A. staticB. finalC. privateD. public答案:C2. 以下哪个方法用于在Java中创建对象?A. newB. createC. makeD. construct答案:A3. 哪个关键字用于在Java中定义一个方法?A. functionB. methodC. defineD. procedure答案:B4. 在Java中,哪个关键字用于实现类的继承?A. extendsB. inheritC. deriveD. base答案:A5. Java中接口和抽象类的主要区别是什么?A. 接口没有构造方法,抽象类有B. 接口可以有实现,抽象类不能C. 接口不能有属性,抽象类可以D. 接口可以有私有方法,抽象类不可以答案:A二、填空题(每空1分,共10分)1. 在Java中,一个类可以继承另一个类的属性和方法,这种特性称为____。

答案:继承2. Java中,一个类只能继承一个父类,这是Java的____特性。

答案:单继承3. 当一个类实现了一个接口时,它必须实现接口中所有的____方法。

答案:抽象4. Java中,____关键字用于声明一个类是抽象的。

答案:abstract5. 在Java中,____关键字用于声明一个方法没有具体的实现。

答案:abstract三、简答题(每题10分,共20分)1. 请简述Java中封装的概念及其重要性。

答案:封装是面向对象编程中的一个核心概念,它指的是将对象的状态(属性)和行为(方法)结合在一起,并隐藏对象的内部实现细节。

封装的重要性在于它提高了代码的安全性和可维护性,使得对象的内部状态不会被外部代码随意访问和修改,从而保护了对象的完整性。

2. 描述Java中多态的概念及其作用。

答案:多态是面向对象编程中的一个特性,它允许不同类的对象对同一消息做出响应。

第三章-面向对象程序设计(答案)

第三章-面向对象程序设计(答案)

一、判断题1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。

对2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。

对3、接口中的成员变量全部为常量,方法为抽象方法。

对4、抽象类可以有构造方法,可以直接实例化。

错5、对static方法的调用可以不需要类实例。

对6、包含抽象方法的类一定是抽象类。

对7、方法中的形参可以和方法所属类的属性同名。

对8、接口无构造器,不能有实例,也不能定义常量。

错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。

对10、Java应用程序的入口main方法只有一种定义法。

对二、选择题1、下列答案正确的是(A)A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java源文件中只能包含一个类,并被声明为publicC) 在同一个Java源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过( B )实现的。

A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述(A)A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final关键字不可以用来修饰( D )A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有( B )属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过(A)实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.*包的是( D )A) Collection B) V ector C) Map D) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addV alue( int a, int b ){return a+b;}float addV alue ( float a, float b) {return a+b;}B) int addV alue (int a, int b ){value=a+b; }float addV alue ( int a, int b) {return (float)(a+b);}C) int addV alue( int a, int b ){return a+1;}int addV alue ( int a, int b) {return a+b;}D) int addV alue( int a, int b ) {return a+b;}int addV alue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?( C )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addV alue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? ( B )A) public int addV alue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addV alue( int a ){// do something...}D) public int addV alue( int a, int b ) {//do something...}11、以下程序段输出结果的是( B )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是( B )public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?(A)A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。

(最新整理)c++面向对象复习题答案版

(最新整理)c++面向对象复习题答案版

(完整)c++面向对象复习题答案版编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)c++面向对象复习题答案版)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)c++面向对象复习题答案版的全部内容。

一、填空题1。

C++中有两种数据类型:( char )和( int long )可以使用signed修饰符。

在C++中,用数组、指针、和(引用)作为函数参数,能够将参数值带回。

2。

为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。

3。

面向对象的程序设计有四大特征,它们是抽象、封装、(继承 )、(多态 )。

4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象中)。

5。

用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。

6。

静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享)。

7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同).8。

在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装 )特性。

9.预编译指令由三种,它们是:文件包含、(宏定义 )和(条件编译)。

10。

静态的成员函数没有隐含的(this),所以,它们只能直接访问类的静态的数据成员。

11.在C++中,函数的参数有两种传递方式,它们是值传递和(地址).12。

当非静态成员函数被调用时,该成员函数的(this)指向调用它的对象。

面向对象参考答案整理

面向对象参考答案整理

客观世界是由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。

具有相同属性和操作的对象可归纳成类,对象是类的一个实例。

类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。

对象之间的联系通过消息传递来维系。

封装是面向对象方法的一个重要原则,封装有两个含义:结合性即将属性和方法结合;信息隐蔽性利用接口机制隐蔽内部细节。

继承性是指子类可以自动拥有父类的全部属性与操作的机制。

继承可分为单重继承和多重继承两类。

继承简化了对现实世界的描述定义子类时不必定义那些在父类中已经定义过的属性和操作使软件的复用性提高。

多态性是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

2 什么是分解、耦合度和内聚度?耦合度是从模块外部考察模块的独立性程度。

模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

模块间耦合高低取决于模块接口的复杂性、调用的方式及传递的消息。

内聚度(Cohesion)是模块内部各成份(语句或语句段)之间的联系。

模块内部各成份联系越紧,即其内聚度越大,模块独立性就越强。

分解:将系统分为更小成分3 什么是动态绑定?动态绑定,是指在程序运行时才将消息所请求的操作与实现该操作的方法进行连接。

4 什么是用例图,用例图有哪些部分组成。

用例是从用户的观点对系统行为的一个描述,特定的环璄下,特定的目标相关的系统与用户之间的一组可能的交互序列组成.用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。

用例图包含6个元素:参与者(Actor)、用例(Use Case)、关联关系(Association)包含关系(Include)、扩展关系(Extend)、泛化关系(Generalization)5 用例图中参与者之间的关系有哪些?用例之间的关系有哪些?参与者之间的关系:泛化关系用例之间的关系:关联关系、包含关系、扩展关系、泛化关系地位:用例图显示了用例和活动者之间、用例之间、以及活动者之间的关系,这种关系描述了模型元素之间的语义联系。

面向对象基础-参考答案

面向对象基础-参考答案

一、【必做题】1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。

(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。

(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。

2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。

()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。

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

●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。

(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。

●面向对象技术中,对象是类的实例。

对象有三种成份:____(3)____、属性和方法(或操作)。

(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。

●在面向对象技术中,类属是一种__(1)__机制。

一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。

(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。

不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。

多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。

参数多态应用比较广泛,被称为最纯的多态。

这是因为同一对象、函数或过程能以一致的形式用于不同的类型。

包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。

过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。

即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。

强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。

类型的变换可在编译时完成,通常是隐式地进行,当然也可以在动态运行时来做。

类属类(generic class)仅描述了适用于一组类型的通用样板,由于其中所处理对象的数据类型尚未确定,因而程序员不可用类属类直接创建对象实例,即一个类属类并不是一种真正的类类型。

类属类必须经过实例化后才能成为可创建对象实例的类类型。

类属类的实例化是指用某一数据类型替代类属类的类型参数。

类属类定义中给出的类型参数称为形式类属参数,类属类实例化时给出的类型参数称为实际类属参数。

如果类属类实例化的实际类属参数可以是任何类型,那么这种类属类称为无约束类属类。

然而在某些情况下,类属类可能要求实际类属参数必须具有某些特殊的性质,以使得在类属类中可应用某些特殊操作,这种类属类称为受约束类属类。

●类的实例化过程是一种实例的合成过程,而不仅仅是根据单个类型进行的空间分配、初始化和绑定。

指导编译程序进行这种合成的是_(47)_。

(47)A.类层次结构B.实例的个数C.多态的种类D.每个实例的初始状态●重置的基本思想是通过_(48)_机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。

(48)A.静态绑定B.对象引用C.类型匹配D.动态绑定●OMT 定义了三种模型来描述系统。

_(49)_可以用状态图来表示;_(50)_可以用数据流图来表示。

_(51)_为上述两种模型提供了基本的框架。

(49)A.对象模型B.功能模型C.动态模型D.类模型(50)A.对象模型B.功能模型C.动态模型D.类模型(51)A.对象模型B.功能模型C.动态模型D.类模型●在UML 提供的图中, ____(31)____用于描述系统与外部系统及用户之间的交互;___(32)___用于按时间顺序描述对象间交互。

(31)A.用例图B.类图C.对象图D.部署图(32)A.网络图B.状态图C.协作图D.序列图在关于类的实例化的描述中,正确的是__(45)___。

●在关于类的实例化的描述中,正确的是__(45)___。

(45)A.同一个类的对象具有不同的静态数据成员值B.不同的类的对象具有相同的静态数据成员值C.同一个类的对象具有不同的对象自身引用(this)值D.不同的类的对象具有相同的对象自身引用(this)值正确答案:C学过面向对象编程语言的人,应该对this这个关键字并不陌生,它是对象自身引用值。

程序当运行时,this相当于当前类产生对象的名称。

所以对于同一个类的对象具有不同的对象自身引用(this)值。

●在某个信息系统中,存在如下的业务陈述:①一个客户提交0 个或多个订单;②一个订单由一个且仅由一个客户提交。

系统中存在两个类:“客户”类和“订单”类。

对应每个“订单”类的实例,存在___(46)___“客户”类的实例;对应每个“客户”类的实例,存在___(47)___个“订单”类的实例。

(46)A.0 个B.1个C.1 个或多个D.0 个或多个(47)A.0 个B.1 个C.1 个或多个D.0 个或多个●下列关于静态多态实现重载的描述中正确的是____(30)___。

(30)A.重载的方法(函数)的方法名(函数名)可以不同B.重载的方法(函数)必须在返回值类型以及参数类型上有所不同C.重载的方法(函数)必须在参数顺序或参数类型上有所不同D.重载的方法(函数)只需在返回值类型上有所不同试题(30)分析方法的重载必须保证方法的签名不同,所谓方法的签名是指函数或方法的名字和参数的类型和参数的顺序。

重载要求在参数的顺序或者参数的类型上有所不同,对返回值没有要求。

参考答案(30)C●程序设计语言提供了基本类型及其相关的操作,而____(31)____则允许开发者自定义一种新的类型及其相关的操作。

供选择的答案:(31)A.对象B.实例C.类D.引用试题(31)分析类是能够由用户定义的一种新的类型。

对象是类的实例。

参考答案(31)C●___(32)___表示了对象间“is-a”的关系。

供选择的答案:(32)A.组合B.引用C.聚合D.继承试题(32)分析继承表达了子类对象是一种父类对象的关系。

参考答案(32)D●若对象A 可以给对象B 发送消息,那么___(48)___。

供选择的答案:(48)A.对象B 可以看见对象A B.对象A 可看见对象BC.对象A、B 相互不可见D.对象A、B 相互可见试题(48)分析对象A可以给对象B发送消息,那么表明对象A可以调用对象B的方法,那么对象A可以看见对象B。

参考答案(48)B●类描述了一组对象共同的特性,下列叙述中正确的是____(49)____。

供选择的答案:(49)A.类本身不能具有变量B.对象具有类定义的所有变量的一份拷贝C.对象间不能共享类定义的变量D.可通过类名访问静态变量(类变量)试题(49)分析类也可以有变量,所有类的对象都共享此类的变量。

参考答案(49)D●___(50)___反映了类间的一种层次关系,而___(51)____反映了一种整体与部分的关系。

(50)A.继承B.组合C.封装D.多态(51)A.继承B.组合C.封装D.多态试题(50)、(51)分析继承反映了类间的一种层次关系,而组合反映了一种整体与部分的关系。

参考答案(50)A (51)B 试题(52)●下列叙述中正确的是___(52)__。

供选择的答案:(52)A.面向对象程序设计语言都不支持过程化的程序设计B.面向对象系统只可采用面向对象程序设计语言实现C.某些过程化程序设计语言也可实现面向对象系统D.面向对象程序设计语言不支持对成员变量的直接访问试题(52)分析某些面向对象的程序设计语言支持过程化的程序设计,过程化的程序设计语言也可实现面向对象系统。

参考答案(52)C●在面向对象软件开发过程中,采用设计模式(37)。

(37)A.允许在非面向对象程序设计语言中使用面向对象的概念B.以复用成功的设计和体系结构C.以减少设计过程创建的类的个数D.以保证程序的运行速度达到最优值●以下关于单身模式(Singleton)的描述中,正确的是(38)。

(38)A.它描述了只有一个方法的类的集合B.它能够保证一个类只产生一个唯一的实例C.它描述了只有一个属性的类的集合D.它能够保证一个类的方法只能被—个唯一的类调用正确答案:B单身模式(Singleton是一种创建型模式。

创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的对象。

对于系统中的某些类而言,只有一个实例是很重要的。

单身模式的意图就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。

●下列关于一个类的静态成员的描述中,不正确的是(39)。

(39)A.该类的对象共享其静态成员变量的值B.静态成员变量可被该类的所有方法访问C.该类的静态方法只能访问该类的静态成员变量D.该类的静态数据成员变量的值不可修改●在MVC(模型/视图/控制器)模式中,视图部分描述的是(40)。

(40)A.将应用问题域中包含的抽象领域知识呈现给用户的方式B.应用问题域中所包含的抽象类C.用户界面对用户输入的响应方式D.应用问题域中包含的抽象领域知识正确答案:A解析:MVC模式,即模型—视图—控制(Model-View-Controller)模式,它实际上是一种架构模式,是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地体现了数据层与表示层的分离。

MCV把应用程序分为3种对象类型。

. 模型:应用问题域中包含的抽象领域知识;. 视图:将应用问题域中包含的抽象领域知识呈现给用户的方法:一个模型可以用于多个视图;. 控制器:用户界面对用户输入的响应方式。

●对于如下所示的UML 类图,正确的描述是(41)。

(41)A.类B 的实例中包含了对类C 的实例的引用B.类A 的实例中包含了对类B 的实例的引用C.类A 的实例中包含了对类C 的实例的引用D.类B 的实例中包含了对类A 的实例的引用正确答案:B解析:UML类图一般包含3个组成部分。

第一个是类名,第二个是属性,第三个是该类提供的方法(类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。

类名部分是不能省略的,其他组成部分可以省略。

类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。

属性和方法书写规范:修饰符[描述信息]属性、方法名称[参数][:返回类型|类型]属性和方法之前可附加的可见性修饰符:加号(+)表示public,减号(-)表示private,#号表示protected,省略这些修饰符表示具有package(包)级别的可见性。

如果属性或方法具有下画线,则说明它是静态的。

类的性质是由一个属性、一个赋值方法和一个取值方法组成的。

相关文档
最新文档