1.以下关于单例模式(Singleton)的描述中,正确的是()。
A.它描述了只有一个方法的类的集合
B.它能够保证一个类只产生一个唯一的实例
C.它描述了只有一个属性的类的集合
D.它能够保证一个类的方法只能被—个唯一的类调用
所属知识点:面向对象>设计模式的图
答案解析:
单例模式(Singleton)是一种创建型模式。创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的对象。
对于系统中的某些类而言,只有一个实例是很重要的。单身模式的意图就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2.在过程式程序设计(①)、数据抽象程序设计(②)、面向对象程序设计(③)、泛型(通用)程序设计(④)中,C++ 语言支持( ),C语言支持( )。
(1)A.① B.②③ C.③④ D.①②③④
(2)A.① B.②③ C.③④ D.①②③④
答案解析:
本题提到的4种程序设计范型是比较流行的,且分别被多种程序设计语言所支持。经典的C语言目前仅支持过程式程序设计范型,这是一种基于任务分解的、自上而下的程序设计方法。数据抽象程序设计范型允许将问题空间和解空间中的事物、概念等采用类机制来表示。面向对象程序设计范型比数据抽象更进一步,支持继承、多态等,更加符合客观世界的规律。泛型程序设计即设计出通用算法、通用类型,并使它们应用于多种数据类型。
C++语言以C语言为基础,增加了后三种程序设计范型的支持,它是目前使用广泛的程序设计语言之一。
3.Java语言符合的特征有( )和自动的垃圾回收处理。
①采用即时编译
②采用静态优化编译
③对象在堆空间分配
④对象在栈空间分配
A.①③ B.①④ C.②③ D.②④
所属知识点:面向对象>面向对象的基本概念
答案解析:
JAVA是解释型语言,可以生成中间代码后再边解释为目标代码边执行,也就是即时编译,可以根据运行机器优化代码,采用的是动态优化编译。所以①的说法正确,②的说法错误。
Java程序最初都是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”(Hot Spot Code ),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成本地机器码,并以各种手段尽可能地进行代码优化,这个过程就叫即时编译,运行时完成这个任务的后端编译器被称为即时编译器。
JAVA的栈空间只存放基本类型、引用类型变量和方法,而堆中存储实例对象。③的说法正确,④的说法错误。
本题综合选择A选项。
4.采用面向对象方法进行系统设计时,不应该强追客户依赖于他们不用的方法,即∶依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这属于( )
A.单一责任
B.开放-封闭
C.接口分离
D.里氏替换
所属知识点:面向对象>面向对象设计原则
答案解析:
单一职责原则:设计目的单一的类。
开放封闭原则:对扩展开放,对修改封闭。
里氏替换原则:子类可以替换父类。
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。不强迫客户依赖于他们不用的方法,即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。
本题题干看起来类似于依赖倒置原则,但依赖倒置不涉及强迫客户依赖于他们不用的方法。本题描述的应该是接口隔离原则。本题选择C选项。
5.当UML状态图用于对系统、类或用例的动态方面建模是(1)建模。以下UML状态图中,假设活动的状态是A,事件b=0发生并生的是(2),D变为活动的状态,有关状态图的叙述中,不正确(3)。
(1)A.系统的词汇
B.反应型对象
C.活动流程
D.对象快照
(2)A.—旦状态A的exit动作完成,或如果当前执行do动作,则终止执行。
B.—旦状态A和B的所有动作完成
C.一旦正在进行的状态A完成
D.—旦状态B的exit动作完成
(3)A.动作可以在状态内执行,也可以在状态转换时执行
B.当触发转换的事件发生并且转换没有指定的监护条件时,对象将离开当前状态,并且其do动作终止
C.When (…)称为时间时间
D.状态由事件触发
所属知识点:面向对象>UML图的图示
答案解析:
当对系统、类或用例的动态方面建模时,通常是对反应型对象建模,第一空选择B选项。
状态图通常包含简单状态和组合状态、转换(事件和动作)。
状态是指对象的生命周期中某个条件或者某个状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。
嵌套在另外一个状态中的状态称为子状态(本题中的A、B为子状态),含有子状态的状态称为组合状态(也叫作超状态,C是组合状态)。状态C完成才会在when b =5[a>5]时,让D进入激活状态,当前状态为A,当A完成时进入状态B,状态B完成后才完成组合状态C。因此第二空应该选择B选项,需要状态A和B都完成。
转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警戒(监护)条件满足时进入目标状态。动作是一个可执行的原子操作,是不可中断的,其执行时间可以忽略不计。转换由事件触发,而不是状态由事件触发,第三空D选项描述错误。
6.以下关于UML状态图的叙述中,不正确的是( )。
A.活动可以在状态内执行,也可以在迁移时执行
B.若事件触发一个没有特定监护条件的迁移,则对象离开当前状态
C.迁移可以包含事件触发器、监护条件和状态
D.事件触发迁移
所属知识点:面向对象>UML图的定义
答案解析:状态图展现了一个状态机,它由状态、转换、事件和活动组成,通常包括简单状态和组合状态、转换(事件和动作)。由于状态可以是单一的,也可以是嵌套的(嵌套在另一个状态中的状态称为子状态,含有子状态的状态称为组合状态),所以活动可以在状态内执行,也可以在状态迁移时执行,A选项说法是正确的。
转换(迁移)是两个状态之间的一种关系,表示对象将在源状态执行一定的事件或动作,并在某个特定事件发生而且某个特定的监护条件满足时离开当前状态而进入目标状态,事件触发没有特定监护条件的迁移,对象也会离开当前状态,B选项正确。转换(迁移)是从源状态和目的状态之间的一种关系,可以包含触发事件、监护条件、状态(源状态和目的状态)、动作,C选项说法不准确,本题选择C选项。当某个事件发生后,对象的状态将发生变化,事件可以触发迁移,D选项说法是正确的。
7.( )绑定是指在运行时把过程调用和响应调用所需要执行的代码加以结合。
A.动态
B.过载
C.静态
D.参数
所属知识点:面向对象>面向对象的基本概念
答案解析:运行时结合是动态绑定,编译时结合是静态绑定。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!