面向对象测试题

面向对象测试题
面向对象测试题

一、问答题

1.值类型和引用类型的区别?

值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

值类型变量直接把变量的值保存在栈中,引用类型的变量把实际数据的地址保存在栈中,而实际数据则保存在堆中。

注意,堆和栈是两个不同的概念,在内存中的存储位置也不相同。

堆(Heap)一般用于存储可变长度的数据,如字符串类型堆中保存值和对象,调用完毕之后依然存在,由垃圾回收器查找栈中有无指向该值或对象的引用,无则从堆中删除;

栈(Stack)则用于存储固定长度的数据,如整型类型的数据int(每个int变量占用四个字节),栈由系统管理生存期,存储代码执行和调用路径,执行或调用完毕即从栈中清除。

由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值;

而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。

在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量;

对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。

(1) 值类型

包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。

(2) 引用类型

包括:对象类型、类类型、接口、元数据、字符串类型、数组。

//值类型与引用类型的例子

static void Main(string[] args)

{

//=====值类型,操作的是值========

int i1 = 10;

int i2 = i1;

i2 = 88;

Console.WriteLine(i1 + " " + i2);

//10 88 [由于值类型直接操作值,所以不会发生改变]

//=====引用类型,操作的是引用,所谓的引用可以看作是指向内存的地址,地址再对应着内容=====

int[] intArr1 = new int[] { 1, 2, 3 };

int[] intArr2 = intArr1;

intArr2[0] = 9;

intArr2[2] = 0;

foreach (int i in intArr1)

{

Console.Write(i);

//结果:920

[由于引用类型intArr1的引用赋值给了intArr2,所以他们是持有同一个引用,当intArr2的引用发生改变的时候,intArr1的引用也将发生变化]

}

foreach (int j in intArr2)

{

Console.Write(j);//结果:9 2 0

}

Console.Read();

下面代码的输出结果是什么?

class Program

{

static void Main(string[] args)

{

string b;

b = "old";

Func1(ref b);

Console.WriteLine(b);

int c;

c = 3;

Func1(ref c);

Console.WriteLine( c);

}

public static void Func1(ref string a)

{

a = "new";

}

public static void Func1(ref int a)

{

a = 6;

}

}

答案:

new

6

题目2:下面代码的输出结果是什么?

class Program

{

static void Main(string[] args)

{

string b;

b = "old";

Func1( b);

Console.WriteLine(b);

int c;

c = 3;

Func1( c);

Console.WriteLine( c);

}

public static void Func1( string a)

{

a = "new";

}

public static void Func1( int a)

{

a = 6;

}

}

答案:

old

3

2.简述装箱和拆箱的过程。

装箱(boxing)是将值类型隐式地转换为引用类型。如int i=3; object o = i ;便是装箱过程,装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。拆箱(unboxing)是显式地把引用类型转换成值类型,如int j = (int)o char j= (char)o。

3.结构和类的区别是什么?

1) 结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。

2) 对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。

3) 一般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。

4.什么是静态变量?

类的数据成员可以分静态变量、非静态变量两种.

静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.

非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中。

一个类中可以同时包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数。

5.abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,抽象类不能被实例化。

abstact class A

{}

A a = new A(); //这个是错误的

class B:A

{}

B b = new B();

A a = b;

-------------------

然而可以创建一个变量,其类型是一个抽像类,

并让它指向【具体子类】的一个实例。

-------------------

===》不能有抽像构造函数或抽像静态方法。

抽象类的方法必须全部被子类继承::如果子类也是抽象的,那么就不必全部继承

接口(interface)是抽像类的【变体】。

在接口中,所有方法都是抽像的;在抽象类中,有些方法可以不是抽象的。

多继承性可通过接口实现。

接口中的所有方法都是抽像的,没有一个有【方法体】。

interface A

{}

interface B

{}

abstract class A1()

{}

abstract class A2

{}

class c:A1,A,B

{}

6.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,

抽象类是可继承实体类,

但前提是实体类必须有明确的构造函数。

7.进程和线程分别怎么理解?

1)定义解释

进程是具有一定独立功能程序在关于某个数据集上的一次运行活动。进程是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是Cup调度的基本单位。它是比进程更小的能独立运行的基本单位,线程只拥有一点在运行中必不可少的资源,可与同一个进程中其他线程共享进程中所拥有的所有资源。一个线程可以创建和销毁另一个线程,同一进程中的多个线程可以同时并发执行;

2)区别解释

一个程序至少有一个进程,一个进程至少有一个线程。

线程的划分尺度小于进程,使得多线程程序并发行高,另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存从而极大的提高程序的运行效率。

进程有独立的地址空间一个进程崩溃后在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径;线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。所以多进程的程序要比多线程的程序健壮,但在进程切换时耗费资源较大,效率要差一些。但对一些要同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

8.简述“开-闭”原则的基本思想。请举出一个使用了软件“开-闭”原则的软件设计模式,其中何处体现了“开-闭”原则。

答:“开—闭”原则:软件实体应当对扩展开放,而对修改关闭,“开-闭”原则要求软件系统能够在不需要修改原有类的基础上,通过增加类达到扩展功能的目的。

Abstract factory体现了这个原则,如果想增加一类新的products,只需在product类体系中增加各个products,然后在factory类体系结构中增加一个concrete factory就可以了,而不需要对现有类做任何修改,The Open-closed principle[ocp]在不改动过模块源代码的情况下扩展模块的行为。

9.简述依赖倒置原则的基本思想。请举出一个使用了软件依赖原则的软件设计模式,其中何处体现了依赖原则。

答:依赖倒置原则的基本思想是:①高层模块不应该依赖于低层模块,二者都应该依赖于抽象。②抽象不应该依赖于细节,细节应该依赖于抽象。Template method就体现了这个原则,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中,template method使得子类不改变一个算法的结构,即可重定义该算法的某些特定步骤。

10.什么是单一职责原则?请举出一个使用了单一职责原则的软件设计模式,其中何处体现了单一职责原则。

答:基本思想:SRP使得一个类或一个模块承担的责任尽可能的少,使尽可能少的因素或动机影响该类或该模块,即增大类或模块的内聚性,减少其耦合度,SRP是所有原则中最简单的之一,也是最难正确运用的之一。

COMMAND模式体现了SRP原则,大多数类都是一组方法和相应的一组变量的结合,而该模式只是封装了一个没有任何变量的函数,它对函数的关注超过了类,将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化。

11.软件复用可采用类的继承方式和类的聚合方式,比较两者的优缺点。

答:聚合:一个对象拥有另一个对象或对另一个对象负责(即一个对象包含另一个对象或是另一个对象的一部分)并且聚合对象和其所有具有相同的生命周期(即所谓的“同生共死”关系)。

聚合复用优点:①容器类仅能通过被包含对象的接口来对其进行访问。②“黑盒”复用,因为被包含对象的内部细节对外是不可见。③包装性好。④实现上的相互依赖性比较小。⑤每一个类只专注于一项任务。⑥通过获取指定其他的具有相同类型的对象的使用,可以在运行期间动态地定义(对象的)组合。

聚合的缺点:①导致系统中的对象过多②为了能将多个不同的对象作为组合块来使用,必须仔细地对接口进行定义。

类继承:是一种通过扩展(一个已有对象的)实现,从而获得新功能的复用方法。

继承的优点:①容易进行新的实现,因为其大多数可继承而来②易于修改或扩展那些被复用的实现。

继承的缺点:①破坏了封装性,因为这会将父类的实现细节暴露给子类②“白盒”复用,因为父类的内部细节对于子类而言通常是可见的③当父类的实现更改时,子类也不得不随之更改④从父类继承来的实现将不能在运行期间进行改变。

12.比较Adapter和Proxy模式使用上的异同之处。

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

代理模式有两个英文名字:Proxy Pattern 和Surrogate Pattern。代理模式:为其他对象提供一种代理以控制对这个对象的访问。说白了就是,在一些情况下客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要的额外服务。

两者的主要区别在于代理模式应用的情况是不改变接口命名的,而且是对已有接口功能的一种控制;而适配器模式则强调接口转换。

二、选择题

1.关于信息隐藏的描述错误的是()

A.信息隐藏是指对象在与外界的交互中,尽可能地隐藏对象的内部细节,仅保留有限的对外接口与外部进行联系。

B.信息隐藏既可以隐藏属性,也可以隐藏操作。

C.一个对象信息隐藏的内容对任何对象都是一样的,并不随与之交互的对象的不同而改变。

D.信息隐藏的原则是公开不变的操作,隐藏易变的操作。

2.关于多态的描述正确的是()

A.多态是指在聚合关系中的各个类中名字相同的属性和操作具有不同的意义。

B.多态的实现机制是编译时静态链接。

C.函数名重载(overload) 会导致多态现象出现。

D.多态可实现接口复用,节省大量的编码工作量.

3.关于重载(overload)与覆盖(override)的说法正确的是()。

A.如果子类中的成员函数f(x)具有父类中成员函数f(x)相同的函数名,那么称子类对父类的f(x)进行了覆盖。

B.如果子类中的成员函数f(x)具有父类中成员函数f(x)相同的基调,那么称子类对父类的f(x)进行了重载。

C.重载导致多态,覆盖与多态无关。

D.覆盖由动态链接实现,重载由静态链接实现。

4.关于用例图与类图的描述正确的是()。

A.参与者是用例图中的元素,类是类图中的元素,二者没有关系。

B.用例图中用例应全部识别为类图中的同名类。

C.用例图中参与者应全部识别为类图中的同名类。

D.用例图中参与者有可能识别为类图中的主动类

5.关于状态图的陈述正确的是()

A.一个对象自身的属性值变化不能作为其状态图中的事件。

B.历史状态是指一个对象以前曾经所处的状态集合。

C.动作是在状态内或在转化时所做的操作,是原子的和即时的。

D.一个状态的内部转换与自转换的意义是相同的。

6.关于关联与消息之间的关系的说法正确的是()

A. 关联的目的是为了提供服务,必然导致消息传递

B. 只有两个类之间存在关联,才能互发消息

C. 两个类的实例之间没有关联链,但仍可以传递消息

D. 若两个对象之间有链,则二者一定具有消息传递关系

7.下列关于面向对象的分析与设计的描述,正确的是()。

A.面向对象分析软件做什么,设计描述软件要怎么做。

B.面向对象分析描述问题域与系统责任,面向对象的设计考虑与软件实现有关的问题。

C.面向对象分析与面向对象的设计遵循不同的范型。

D.面向对象分析类图与面向对象的设计类图具有相同的类与关系

8.设计模式具有的优点()。

A.适应需求变化 B.程序易于理解

C.减少开发过程中的代码开发工作量 D.简化软件系统的设计

9.设计模式一般用来解决什么样的问题( )。

A. 同一问题的不同表相B 不同问题的同一表相

C.不同问题的不同表相

D.以上都不是

10.设计模式的两大主题是( )。

A.系统的维护与开发

B.对象组合与类的继承

C.系统架构与系统开发

D. 系统复用与系统扩展

11.以下哪些问题通过应用设计模式不能够解决。()

A)指定对象的接口B)针对接口编程

C)确定软件的功能都正确实现D)设计应支持变化

12.Adapter(适配器)模式的意图是()。

A. 希望简化现有系统的使用方法。你需要定义自己的接口。

B .将一个无法控制的现有对象与一个特定接口相匹配。

C. 将一组实现部分从另一组使用它们的对象中分离出来。

D.你需要为特定的客户(或情况)提供特定系列的对象。

13.下面不属于创建型模式的有()。

A.抽象工厂模式(Abstract Factory )B.工厂方法模式(Factory Method)

C .适配器模式(Adapter )D.单例模式(Singleton)

14.将一个类的接口转换成客户希望的另一个接口。这句话是对下列哪种模式的描述

()。

A. 策略模式(Strategies)B.桥接模式(Bridge)

C .适配器模式(Adapter )D.单例模式(Singleton)

15.以下关于结构型模式说法不正确的是。()

A)结构型模式可以在不破坏类封装性的基础上,实现新的功能。

B)结构型模式主要用于创建一组对象。

C)结构型模式可以创建一组类的统一访问接口。

D)结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互

16.下列属于设计模式基本原则的是( )。

A.继承

B.封装

C. 开放-封闭D 都不是

4. 常用的设计模式可分为()。

A 创建型、结构型和行为型

B 对象型、结构型和行为型

C 过程型、创建型和结构型

D 抽象型、接口型和实现型

17.以下哪一条不属于设计模式的基本原则()。

A 开放-封闭原则。

B 根据场景进行设计的原则。

C 优先使用继承的原则。

D 包容变化的原则。

18.下面不属于结构模式的有()。

A.适配器模式(Adapter)

B. 单例模式(Singleton)

C.桥接模式(Bridge)

D.装饰模式(Decorator)

19.Decorator(装饰)模式的意图是:()。

A.定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换。

B. 为一个对象动态连接附加的职责。

C.你希望只拥有一个对象,但不用全局对象来控制对象的实例化。

D.在对象之间定义一种一对多的依赖关系,这样当一个对象的状态改变时,所有依赖于它的对象都将得到通知并自动更新。

20.下面属于创建型模式的有()。

A .抽象工厂(Abstract Factory )模式

B.外观(Facade)模式

C.适配器(Adapter)模式

D.桥接(Bridge)模式

答案:

1、C

2、D

3、D

4、D

5、C

6、C

7、B

8、A

9、A 10、D

11、C 12、B 13、C 14、C 15、B

16、C 17、C 18、B 19、B 20、A

面向对象方法题库1-1-9

面向对象方法题库1- 1-9

问题: [单选]用例(usecase)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系筑”中,创建新订单和更新订单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单”与用例“核查客户账号”之间是()关系。 A.包含(includE. B.扩展(extenD. C.分类(classification) D.聚集(aggregation) 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。 两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。 ①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。 ②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事

情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。

问题: [单选]对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案是() A.尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程 B.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B 行为不完全一致的问题 C.将B到A的继承关系改成组合关系 D.区分是Is-a还是Has-a。如果是Is-a,可以使用继承关系,如果是Has-a,应该改成组合或聚合关系 里氏替换原则是面向对象设计原则之一,由BarbaraLiskov提出,其基本思想是,一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且觉察不出基类对象和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。反过来则不一定成立,如果一个软件实体使用的是一个子类对象,那么它不一定适用于基类对象。 在运用里氏替换原则时,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。由于子类继承基类并实现其中的方法,程序运行时,子类对象可以替换基类对象,如果需要对类的行为进行修改,可以扩展基类,增加新的子类,而无须修改调用该基类对象的代码。

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

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() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.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()

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

面向对象面试题

面向对象面试题 1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 2、简述private、protected、public、internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 3、https://www.360docs.net/doc/be6326607.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.360docs.net/doc/be6326607.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.360docs.net/doc/be6326607.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.360docs.net/doc/be6326607.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

面向对象分析与及设计习题及答案

面向对象分析与及设计习题及答案 一、单项选择题 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是(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)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 11.一个设计得好的OO系统具有(B) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征 12.下面()不是UML的基本构成元素。(A) A. 控制语言 B. 基本构造块 C. 规则 D. 公共机制

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

2_面向对象基础测试题和答案

面向对象部分测试题 1.下面描述函数重写错误的是C A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public的 2.关于封装下面介绍错误的是(D )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装安全性 D. 只有被private修饰才叫做封装 3.试图编译运行下面的代码会发生什么情况D public class MyClass{ static int i; public static void main(String[] args){ } } A. 错误,变量i没有被初始化 B. 输出null C. 输出1 D. 输出0 4.在Java中,下面对于构造函数的描述正确的是( D)。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void

C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5.下面Java代码的运行结果是( C )。 class Penguin { private String name=null; 企鹅的名字是null,健康值是10,性别是雄。 B. 执行构造方法。 企鹅的名字是null,健康值是0,性别是null。 C. 企鹅的名字是null,健康值是0,性别是null。 D. 执行构造方法。 企鹅的名字是null,健康值是10,性别是雄。 6.class A { public int i = 10; } class B extends A{ public int i = 20; } public class Test{ public static void main(String args[]){ B b = new B(); A a = b; } }输出为多少 ( C) 10

Java面向对象测试试题(经典)

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

面向对象编程练习题库test

面向对象编程练习题库 t e s t Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

面向对象编程练习题 专题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 B.java AppFirst C.java D.javac AppFirst 3.设有一个Java小程序,源程序名为,其HTML文件为,则运行该小程序的命令为 () A.java FirstApplet B.javac C.appletviewer D.appletviewer 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对 象的 6、Java程序的最基本组成单位是( )。

面向对象期末测试题(带答案)

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。 2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物 4.关于选择结构下列哪个说法正确? (B ) A .if 语句和 else 语句必须成对出现 B .if 语句可以没有else 语句对应 … … …… …… …… …… …… … …… …装 …… …… …… … …… …订 …… …… …… … …… …线 …… …… …… … …… …… …… …… …

面向对象考试题

第五章考试题 一、选择题:(每题3分,共20题) 1.下面关于类的说法错误的一项是()。 A、类属于Java语言中的复合数据类型 B、对象是Java语言 中的基本结构单位 C、类是同种对象的集合和抽象 D、类就是对象 2.如下所示代码: public class Test05_01{ private float a; public static void m ( ){ } } 如何使成员变量a被方法m( )访问()。 A、将private float a改为public float a B、将private float a改为static float a C、将private float a改为protected float a D、将private float a改为float a 3.下面关于类的说法有误的一项是()。 A、类就是对象 B、类是同种对象的集合和 抽象 C、类属于Java语言中的复合数据类型 D、对象是Java语言 中的基本结构单位

4.下列哪种类成员修饰符修饰的变量只能在本类中被访问()。 A、protected B、default C、private D、public 5.下面关于方法的说法不正确的一项是()。 A、类的私有方法不能被其他类直接访问。 B、Java中的构造方法名必须和类名相同。 C、方法体是对方法的实现,包括变量声明和合法语句。 D、如果一个类定义了构造方法,也可以用该类的默认构造方法。 6.下列程序的运行结果是()。 public class Test05_02 extends x{ int ab(){ static int a = 10; a++; System.out.println(a); } public static void main(String[] args) { Test05_02 b = new Test05_02 (); b.ab(); } } A、10 B、编译错误 C、11 D、运行成功,但不输出

2_面向对象基础测试题和答案

共40道选择题,每题2.5分。多选题有错则全错,全对才满分. 面向对象部分测试题 1.下面描述函数重写错误的是C A.?要有子类继承或实现 ?B.?子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D.?子类重写接口中的抽象方法,子类的方法权限必须是public的 2.关于封装下面介绍错误的是(D )。 A. 封装将变化隔离 B.?封装提高重用性。 C.?封装安全性 ?D. 只有被private修饰才叫做封装 3.试图编译运行下面的代码会发生什么情况D public class MyClass{ static int i; publicstaticvoid main(String[]args){System.out.println(i); } } ?A.?错误,变量i没有被初始化 ?B. 输出null C.?输出1 ?D. 输出0 4.在Java中,下面对于构造函数的描述正确的是( D)。 A. 类必须显式定义构造函数 B.构造函数的返回类型是void ?C.?构造函数和类有相同的名称,并且不能带任何参数

D.一个类可以定义多个构造函数 5.下面Java代码的运行结果是(C)。 class Penguin { ?private String name=null; // 名字 privateint health=0;//健康值 private String sex=null; //性别 publicvoid Penguin(){//是一般方法,不是构造方法 health = 10; ??sex = "雄"; ??System.out.println("执行构造方法。"); ?} public voidprint() { ??System.out.println("企鹅的名字是" +name + ?",健康值是"+ health + ",性别是"+ sex+"。"); ?} public staticvoidmain(String[] args){ ?Penguin pgn= new Penguin(); pgn.print(); } } A. 企鹅的名字是null,健康值是10,性别是雄。 B.?执行构造方法。 企鹅的名字是null,健康值是0,性别是null。 ?C.?企鹅的名字是null,健康值是0,性别是null。 D.?执行构造方法。 ?企鹅的名字是null,健康值是10,性别是雄。 6.class A { public int i = 10;?} class B extends A{

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

面向对象基础测试题和答案

共40 道选择题,每题 2.5 分。多选题有错则全错,全对才满分. 面向对象部分测试题 1. 下面描述函数重写错误的是 C A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private 权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public 的 2. 关于封装下面介绍错误的是( D )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装安全性 D. 只有被private 修饰才叫做封装 3. 试图编译运行下面的代码会发生什么情况 D public class MyClass{ static int i; public static void main(String[] args){ System.out.println(i); } } A. 错误,变量i 没有被初始化 B. 输出null C. 输出1 D. 输出0 4. 在Java 中,下面对于构造函数的描述正确的是(D)。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数

D. 一个类可以定义多个构造函数 5. 下面Java 代码的运行结果是( C )。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { //是一般方法,不是构造方法health = 10; sex = " 雄"; System.out.println(" 执行构造方法。"); } public void print() { System.out.println(" 企鹅的名字是" + name + " ,健康值是" + health + " ,性别是" + sex+ " 。"); } public static void main(String[] args) { Penguin pgn = new Penguin(); pgn.print(); } } A. 企鹅的名字是null ,健康值是10 ,性别是雄。 B. 执行构造方法。 企鹅的名字是null ,健康值是0 ,性别是null 。 C. 企鹅的名字是null ,健康值是0 ,性别是null 。 D. 执行构造方法。 企鹅的名字是null ,健康值是10 ,性别是雄。 6. class A { public int i = 10; }

面向对象笔试题

一、填空题 1 Java中一个类可以有个父类。 2 如果一个类的声明中没有使用extends关键字,这个类被系统默认为是类的子类。 3 子类自然地继承了其父类中不是的成员变量作为自己的成员变量。 4 当子类中定义的成员变量和父类中的成员变量同名时,子类的成员变量了父类的成员变量。 5 子类通过成员变量的隐藏和方法的可以把父类的状态和行为改变为自身的状态和行为。 6 对于重写或继承的方法,Java运行时系统根据调用方法的的类型来选择调用哪个方法。 7 对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用的方法。 8 对于子类创建的一个对象,如果子类继承了父类的方法,未重写,则运行时调用______的方法。 9 在Java语言中多态性体现在由方法重载实现的静态多态性和实现的动态多态性。 10 类不能被继承,即不能有子类。 11 类不能创建对象,必须产生其子类,由子类创建对象。 12 如果一个方法被修饰为方法,则这个方法不能被重写。 13 对于方法,只允许声明,而不允许实现。 14 如果一个方法被修饰为final方法,则这个方法不能。 15 如果一个类是一个abstract类的子类,它必须具体实现的abstract方法。 16 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字。 17 在关键字中能代表当前类或对象本身的是。 18 如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字。 19 子类如果想用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字____ 来表示。 20 如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字。 21 Java中为了克服的缺点,使用了接口,一个类可以实现多个接口。 22 就是方法定义和常量值的集合。 23 使用关键字来定义接口。 24 接口定义包括接口的声明和。 25 一个类通过使用关键字声明自己实现一个或多个接口。 26 如果一个类实现了某个接口,那么这个类必须实现该接口的。 27 接口中的方法被默认的访问权限是。 28 接口的定义包括和接口体。 29 定义接口时,接口体中只进行方法的声明,不允许提供方法的。 30 如果接口中的方法的返回类型不是void的,那么在类中实现该接口的方法时,方法体至少要有一个语句。 31 指那些类定义代码被置于其他类定义中的类。 32 是Java SE5.0的新特性。

面向对象程序设计试卷A

━ ━ ━ ━ ━ ━ ━ ━ ━ 装 ━ ━ ━ ━ ━ ━ ━ 订 ━ ━ ━ ━ ━ ━ ━ 线 ━ ━ ━ ━ ━ ━ ━ ━ ━ 防灾科技学院 2014 ~ 2015 学年 第二 学期期末考试 _面向对象程序设计(Java )___试卷 使用班级 计科、信管、网工答题时间_120分钟_____ 一、单选题(本大题共 10 小题,每题 2 分,共 20 分。) 1、下列标识符,哪个是正确的?( ) A.3a; B. two; C. *three D. this E. -int 2、下列关于main()说法,哪个是正确的?( ) A. 一个类可以没有main()函数; B. 所有对象的创建都必须放在main()方法中; C. main()方法必须放在公共类中; D. main()方法的定义可以根据情况任意修改; 3、下列说法哪个是正确的是?( ) A. 不需要定义类,就可以创建对象。 B. 属性可以简单变量,也可以是一个对象。 C. 属性必须是简单变量。 D. 对象必须有属性和方法。 4、关于package 语句的作用,以下哪个说法是正确的?( ) A. 引入一个包; B. 创建一个包; C. 既能引入一个包,也能创建一个包; D. 以上都不对; 5、下列关于接口的说法,哪个是正确的?( ) A. 接口和抽象类是一回事; B. 一个类可以实现多个接口; C. 接口间不能有继承关系; D. 继承一个接口必须实现该接口的所有方法; 6、 void 的正确含义是?( ) A. 方法没有返回值 B. 方法体为空 C. 没有意义 D.定义方法时必须使用 7、 下面那个不是Java 语言的数据类型( ) A short B double C struct D char 8、下列说法那个是正确?( ) A 、一个程序可以包含多个源文件; B 、一个源文件中只能有一个类; C 、一个源文件中可以有多个公共类; D 、一个源文件只能供一个程序使用。 9、关于super 的说法正确的是( )。 A 、指向当前对象的内存地址; B 、指向当前对象的父类地址; C 、表示该对象功能强大;

面向对象分析与设计试题及其答案

面向对象分析与设计试题B卷 一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 2 分,共 20 分 ) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中()是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是()。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是()。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. ()是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作 图和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 二、填空题 ( 每空 1 分,共 20 分 ) 1. 面向对象开发方法一改过去传统的以___功能分析___为基础的__面向过程__的结构 化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一

面向对象的程序设计试题库

面向对象的程序设计 一、单项选择题 1、下面那种结构不是C++的控制结构() A 顺序结构 B 选择结构 C 循环结构 D 判断结构 答: D 2、下列是C++语言中合法标识符的是()。 A.3three B.if C._1one D.while 答:C 3、下列是合法的C++语言语句的是()。 A.if(x>0) then x=x-1;else x=x+1; B.if(x>0) x=x-1;else x=x+1; C.if x>0 x=x-1;else x=x+1; D.if x>0 x=x-1; 答:B 4、下面那一种不是计算机内部表示整数的方法() A 二进制码B原码 C 补码D反码 答:A 5、在C++语言中,下列数为合法的实数的是()。 A.5E-3 B.5E-3.5 C. E5 D.-3.5E 答:A 6、C++语言中数据类型最大的是() A long B float C int D char

答:B 7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为( )。 A.函数声明 B.嵌套函数 C.定义函数 D.递归函数 答:D 8、表达式0x55^0xB4的结果为()。 A.0xF5 B.0x15 C.0xE1 D.0x1E 答:C 9、C++中,源代码文件后缀为() A .cpp B .obj C .exe D .c 答: A 10、0X5A&0XB7结果是() A 0X13 B 0X12 C 0X14 D 0X15 答: B 二、填空题 1、程序的基本控制结构包括()、()和( )。 答:顺序结构,选择结构,循环结构 2、用来解决问题的,与有限多个步骤组成的具体过程称为()。 答:算法 3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。

面向对象程序设计试卷14-15-1

洛阳理工学院 2014/2015 学年第一学期面向对象程序设计期末考试试题卷 适用班级:B120507-10 考试日期时间:120分钟 一、选择题(每小题2分,共40分) 1、C++是()。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言 2、面向对象程序设计思想的主要特征中不包括()。 A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精 3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0! 所得的结果是str=()。 A. Microsoft Visual Studio 6.0! B. Microsoft C. Microsoft Visual D. Microsoft Visual Studio 6.0 4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A. testDefaulParam(5); B. testDefaulParam(5,8); C. testDefaulParam(5,'#'); D. testDefaulParam(0,0,'*'); 5、下列语句中,将函数int sum(int x, int y)正确重载的是()。 A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(int y, int x); 6、下列表示引用的方法中,()是正确的。已知:int a=1000; A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a; 7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。 A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用 8、下列有关C++类的说法中,不正确的是()。 A. 类是一种用户自定义的数据类型 B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员 C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的 D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的 9、已知X类,则当程序执行到语句:X array[3];时,调用了()次构造函数。 A. 0 B. 1 C. 2 D. 3 10、下面说法中,正确的是() A. 一个类只能定义一个构造函数,但可以定义多个析构函数 B. 一个类只能定义一个析构函数,但可以定义多个构造函数 C. 构造函数与析构函数同名,只要名字前加了一个求反符号(~) D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以 11、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。 A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const); 12、下面描述中,表达错误的是() A. 公用继承时基类中的public成员在派生类中仍是public的 B. 公用继承时基类中的private成员在派生类中仍是private的 C. 公用继承时基类中的protected成员在派生类中仍是protected的 D. 私有继承时基类中的public成员在派生类中是private的 13、设置虚基类的目的是()。 A. 简化程序 B. 消除二义性 C. 提高运行效率 D. 减少目标代码 14、下面()的叙述不符合赋值兼容规则。 A. 派生类的对象可以赋值给基类的对象 B. 基类的对象可以赋值给派生类的对象 C. 派生类的对象可以初始化基类的对象 D. 派生类的对象的地址可以赋值给指向基类的指针 15、关于虚函数的描述中,()是正确的。 A. 虚函数是一个static类型的成员函数 B. 虚函数是一个非成员函数 C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型 16、下面关于友元的描述中,错误的是()。 A. 友元函数可以访问该类的私有数据成员

相关文档
最新文档