第06章 类与对象_客观题答案
第3章-类和对象习题-参考答案.doc
第3章类与对象习题参考答案一、选择题(共30分,每题1分)12345678910 c B C D D B D A D C 11121314151617181920 A C B A A D B C C D 21222324252627282930 C D B B A D B B A A二、填空题(共18分,每题1分)1.不能2.将对象A复制给对象B3.(1) public (2)成员函数4.实例5.复制(拷贝)6.类(test ) 〜test。
7.对象类8.重载返回值参数9.默认(无参)10.->11.构造函数12.函数返回类型类名::成员函数名(参数表);13.常对象14.对象名15.析构函数三、改错题(共12分,每题2分)1.void Point(int a) ------------ Point(int a)cout«A.Show(); ------------ A.Show();2.答案:inti,intj ------------- int i, intj=O 〃注:只要有一个int类型的数据就行。
分析:调用时,既有一个参数,也有两个参数,旦没有重载,所以参数需要带默认值。
3.答案:swap(&a,&b); ----------- s wap(a? b);分析函数的形参是变量的引用,调用时的实参应该是地址。
4.#include<iostream.h>class one{ int al,a2;public:one(int xl=O, int x2=0) 〃修改1:构造函数的函数体没有(al=xl;a2=x2;)show() 〃修改2定义成员函数(cout«al«endl;cout«a2«endl;)};void main(){ one data(2,3);data.show(); 〃修改3:用对象调用成员函数}5.ABC(int aa)a(aa)(} --------- ABC(int aa): a(aa)()分析:构造函数的初始化列表格式错误。
《类与对象》课后习题(含答案)
问题一:程序执行结果是
问题二:本程序中,y、z 是 class Test{ public: static int Data; }; int Test::Data=100; //A void main(void) { Test t1,t2; t1.Data=200; t2.Data=300; //B //C
2、写出程序的输出结果。 #include <iostream> #include <cstring> using namespace std; class SomeClass { int One , Two; public: SomeClass(int a = 1, int b = 1) { One = a; Two = b; cout << "Structor" << endl; } SomeClass(SomeClass &obj) { { cout<<NumA<<'\t'<<"is Destructor."<<endl; } }; int main() { MyTestClass Myclass1(5), Myclass2.Print(); return 0; } 程序的运行结果为: Myclass2(Myclass1);
,第二行是
A.show( ); } 15 10 三、程序填空题
B.show( );
1、完成如下的类,在横线中填写合适的内容。 #include <iostream> #include <cstring> using namespace std; enum Esex{mid , man , woman};//枚举请自学 2.7 class Person { int Num; //编号 char Name[12]; //姓名 Esex Sex; //性别 float Weight; //体重 public: Person(int , char * , Esex , float); Person(); ~Person() {} void PrintInfo(); int Workdays(); }; Person::Person( { Num = id; int id ,char *name , Esex s , float w)
类和对象练习题
类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:( a )A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?( b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b)。
第3章 类与对象习题 参考答案
第3章类与对象习题参考答案一、选择题(共30分,每题1分)二、填空题(共18分,每题1分)1. 不能2. 将对象A复制给对象B3. (1) public (2) 成员函数4. 实例5. 复制(拷贝)6. 类(test )~test()7. 对象类8. 重载返回值参数9.默认(无参)10. ->11. 构造函数12.函数返回类型类名::成员函数名(参数表);13. 常对象14. 对象名15. 析构函数三、改错题(共12分,每题2分)1. void Point(int a)------------Point(int a)cout<<A.Show();----------- A.Show();2. 答案:int i, int j-----------int i, int j=0 //注:只要有一个int类型的数据就行。
分析:调用时,既有一个参数,也有两个参数,且没有重载,所以参数需要带默认值。
3. 答案:swap(&a,&b); ------------swap(a, b);分析函数的形参是变量的引用,调用时的实参应该是地址。
4. #include<iostream.h>class one{ int a1,a2;public:one(int x1=0, int x2=0) //修改1:构造函数的函数体没有{a1=x1;a2=x2;}show() //修改2 定义成员函数{cout<<a1<<endl;cout<<a2<<endl;}};void main(){ one data(2,3);data.show(); //修改3:用对象调用成员函数}5. ABC(int aa)a(aa){} ------------ABC(int aa):a(aa){}分析:构造函数的初始化列表格式错误。
6. 答案:cout<<t1.getmin()<<endl; -----------cout<<t1.GetMin()<<endl;分析:采用默认的访问权限即私有的,在外部无法访问。
国家二级C++机试(类和对象)模拟试卷6(题后含答案及解析)
国家二级C++机试(类和对象)模拟试卷6(题后含答案及解析) 题型有:1. 选择题选择题1.有如下类声明:class Foo{ int bar;};则Foo类的成员bar 是( )。
A.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数正确答案:C解析:此题考查的是类的定义。
在定义类的成员变量时,如果没有使用关键字;所有成员默认定义为private私有权限。
知识模块:类和对象2.有如下类定义:class Foo { public:Foo(int v):value(v){} //①~Foo( ){} //②private:Foo( ){} //③int value=0;//④};其中存在语法错误的行是( )。
A.①B.②C.③D.④正确答案:D解析:此题考查的是类的定义。
C++语言规定,在类体内不允许对所定义的数据成员进行初始化。
知识模块:类和对象3.有如下类定义:class Test { public:Test( ){a=0;c=0;) //①int f(int a)const{this一>a=a;} //②static int g( ){retum a;} //③void.h(int b){Test::b=b;);//④private:int a:static int b:const int c;};int Test::b=0;在标注号码的行中,能被正确编译的是( )。
A.①B.②C.③D.④正确答案:D解析:此题考查的是类的定义。
一个类的长数据成员的初始化只能在成员初始化列表中进行,故选项A错误;常成员函数不能更新对象的数据成员,故选项B错误;静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员,故选项C错误。
知识模块:类和对象4.有如下类声明:class SAMPLE { int h:public:SAMPLE(int i=0):n(i){} void setValue(int n0);};下列关于getValue 成员函数的实现中,正确的是( )。
第7章 类与对象思考与练习题答案
第7章类与对象1、什么叫面向对象的程序设计语言?什么叫类?什么叫对象?什么叫消息?答:在程序设计语言中,面向对象是指采用抽象、封装、继承、多态等程序设计的方法。
因此,具有抽象、封装、继承、多态等特性的编程语言称为面向对象的程序设计语言。
类实际上是一种抽象的数据类型,它将完成某特定功能所用到的数据和对数据的操作(即函数)封装在一起。
对象是指具有某些属性和功能的单个个体。
消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。
2、结构化程序设计方法存在什么问题?答:结构化程序设计方法主要存在以下问题:1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。
软件重用性是软件工程追求的目标之一。
2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。
在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。
实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。
3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。
3、什么叫抽象?什么叫分类?答:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。
4、请简述结构体、联合体和类三种类类型的异同点。
答:三种类类型的异同点见下列表格:struct结构体类型和class类类型都可以封装数据和操作,具有派生性、隐藏性和多态性。
而联合体不具有派生性,但具有隐藏性和多态性。
5、什么叫根类?答:根类是没有从其它类派生而创建的类类型。
实际上,根据class类类型定义的一般形式,[:<基类型列表>]是一个可缺省的项;如缺省将定义一个根类。
c++类与对象习题答案
类与对象1.概念填空题1.1 类定义的关键字是class。
类的数据成员通常指定为私有成员。
类的函数成员通常指定为公有成员,指定为公有的类成员可以在类对象所在域中的任何位置访问它们,类的私有和保护只能被该类的成员函数或友元函数访问。
1.2类的访问限定符包括public、private和protected。
类成员默认的访问方式是private。
访问限定符在类中无先后次序,各限定符允许(允许/不允许)多次出现。
1.3 面向对象程序设计有四个主要特点,即抽象、封装、继承和多态。
1.4 构造函数的任务是建立对象。
类中可以有多个构造函数,它们由参数区分。
如果类说明中没有给出构造函数,则C++编译器会提供构造函数,该函数不完成(完成/不完成)对象初始化工作。
1.5复制构造函数的参数是对象的复制,当程序没有给出复制构造函数时,编译系统会提供默认复制构造函数,完成类对象的复制。
复制构造函数被调用情况有 3 种。
1.6析构函数在对象释放时被自动调用。
类中没有定义析构函数时,编译系统会提供一个默认的析构函数。
该函数不完成(完成/不完成)具体对象的清理工作。
3.选择题3.1 数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( B )。
A.类B.对象C.函数体D.数据块3.2 类的实例化是指(B )。
A.定义类B.创建类的对象C.指明具体类D.调用类的成员3.3下列说法中正确的是(B )。
A.类定义中只能说明函数成员的函数头,不能定义函数体B.类中的函数成员可以在类体中定义,也可以在类体之外定义C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中D.在类体之外定义的函数成员不能操作该类的私有数据成员3.4有如下类定义:class sample {int n;public:sample (int i=0):n(i){ }void setValue(int n0);};下列关于setValue成员函数的实现中,正确的是( B )。
JAVA程序设计课后习题及答案3
第3章1.类是一种复杂的数据类型,它是将数据和对数据的操作封装在一起而形成的集合体,是普通数据类型的扩展。
类不仅包含数据,还包含对数据进行操作的方法,正是这些方法反映了数据的行为。
对象是类的实例,是某个类的变量。
当一个程序运行时,系统为对象分配内存单元,而不是为类分配内存单元。
类和对象是密切相关的,类脱离不了对象,对象必须依赖类。
两者的关系可以简单地描述为抽象和具体的关系。
2.Java中,类成员的访问权限可以分为公共访问、默认访问、私有访问、保护访问和私有保护访问等几种,其中,除了默认访问没有控制符进行修饰,其他几种访问权限分别使用public、private、protected和private protected这样的访问控制修饰符。
3.如果把类设计成一个黑匣子,则使用者只能看见类中定义的公用方法却看不到方法的实现细节,也不能直接操作类中的数据,这样就可以有效地防止外部对类的干扰。
如果改变了类中数据的定义,只要方法名不改,就不会对使用该类的程序产生任何影响,这就是封装的含义。
也就是说,类的封装可以减少程序对类中数据的依赖性。
通过封装,可以达到以下目的。
(1)隐藏类的实现细节。
(2)要求用户只能通过接口访问数据。
(3)提高代码的可维护性。
4.继承是一种由已有的类创建新类的机制,利用继承,可以创建一个具有特殊属性的新类。
新类继承了已有类的状态和行为,并根据需要来增加自己的状态和行为。
对象的多态性主要分为两种类型,即向上转型和向下转型。
向上转型是指用子类对象实例化父类,对象的向上转型是自动完成的;向下转型是指用父类对象实例化子类,向下转型时,必须明确指明要转型的子类类型。
5.方法的重载是指在一个类中,方法的名称相同,但是方法的参数个数或参数类型不同,这称为方法的重载。
在调用具有重载关系的方法时,通过传递参数的个数以及传递参数的类型来区分调用了哪个方法。
如果子类的方法与父类中的方法同名,则子类不能继承父类中的方法,此时称子类方法覆盖了父类中的方法。
类和对象 识别对象的有趣选择题
类和对象:识别对象的有趣选择题1. 引言在计算机科学和编程领域中,类和对象是非常重要的概念。
它们构成了面向对象编程的基础,对于理解和设计软件系统至关重要。
本文将深入探讨类和对象的概念,并提出一些有趣的选择题,以帮助读者更好地理解和应用这些概念。
2. 深入理解类和对象类是面向对象编程中的一个基本概念,它是一种抽象数据类型的定义。
类描述了一个对象的属性和行为,相当于一张蓝图或模板。
对象则是类的实例,是具体存在的数据。
通过类可以创建多个对象,它们共享类定义的属性和行为,但具体的属性值和行为可能会有所不同。
3. 类和对象的关系类和对象之间的关系可以用“模板与实例”来形象地比喻。
类就像是一个事先制定好的蓝图,而对象则是按照这个蓝图制造出来的产品。
汽车厂制定了汽车的设计方案(类),然后根据这个方案生产出了无数辆具体的汽车(对象)。
4. 有趣的选择题现在,让我们来提出一些有趣的选择题,以帮助读者更好地理解类和对象的概念。
4.1. 下列哪一个描述更接近于“类”?A. 具体的汽车B. 汽车制造图纸C. 车间里的汽车答案:B。
类相当于汽车的制造图纸,它定义了汽车的属性和行为。
4.2. 下列哪一个描述更接近于“对象”?A. 具体的汽车B. 汽车制造图纸C. 车间里的汽车答案:A。
对象就像是具体的汽车,它是按照制造图纸制造出来的具体产品。
5. 总结与回顾通过上面的选择题,我们可以更清晰地理解类和对象的概念。
类是抽象的,描述了对象的共同特征和行为,而对象是具体的,是类的实例,具有具体的数值和状态。
在面向对象编程中,我们通过类来定义数据类型,然后通过实例化对象来使用这些数据类型。
6. 个人观点和理解对我来说,类和对象的概念是面向对象编程中最核心和基础的概念之一。
它们能够帮助我们更好地组织和理解现实世界中的各种复杂系统,是我认为非常有价值的编程范式之一。
在我编写的软件中,我经常会遇到需要对现实世界中的实体进行建模和操作的情况,而类和对象的概念能够帮助我更好地进行系统设计和编码实现。
C#习题第7-12章(参考答案)
第七章类和对象参考答案一、选择题1.C 2.C 3.A 4.B二、填空题1.继承性、封装性、多态性。
2.public 类名() {} ;~类名(){}三、简答题3.答:不合法。
Main函数应放在某个类中。
四、程序分析题1.有误。
如果不是静态字段,静态方法不可直接访问。
2. 参考答案MyClass m=new MyClass; m. MyFunc();MyClass.MyMethod();3. this.stuName=stuName;stuID=xuehao;第八章方法参考答案一、选择题1.答:ACD。
分析:AB两个选项说的正是ref和out的主要区别,out不需初始化,但最后一定要对out参数赋值。
CD指出ref和out参数必须修饰在实参前。
二、简答题第九章继承和访问控制参考答案一、选择题1.B二、简答题1.答:类成员有private、public、protected、internal、protected internal五种访问形式。
其中,private:私有成员, 在类的内部才可以访问。
protected:保护成员,该类内部和继承类中可以访问。
public:公共成员,完全公开,没有访问限制。
internal:在同一命名空间内可以访问。
protected internal:在同一命名空间内的派生类可以访问。
2. 答:sealed 修饰符用于防止从所修饰的类派生出其它类。
如果一个密封类被指定为其它类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
3. 答:System.Object类。
三、程序分析题1. abstract class ShapesClass{abstract public int Area();}2. public class Student{protected string studName;protected int studID;public Student(string str, int id){studName=str;studID=id;}public void FindInfo(int id){ if(id==studID)Console.WriteLine ("{0} is a student. ", studName);}}public class CollegeStudent :Student{string department;public CollegeStudent(string deptmnt,string studName, int id){ department=deptmnt;}public new void FindInfo(int id){if(id==studID)Console.WriteLine ("{0} is a student in the {1} Department. ", studName,department);}}第十章多态参考答案一、选择题1. A。
uml复习题答案
uml复习题答案UML复习题答案UML(Unified Modeling Language)是一种用于软件系统设计和开发的标准建模语言。
它提供了一套丰富的图形符号和规范,用于描述系统的结构、行为和交互。
对于软件工程师和系统分析师来说,熟练掌握UML是非常重要的。
下面是一些常见的UML复习题及其答案,希望对大家的复习有所帮助。
1. 什么是UML的核心建模元素?答:UML的核心建模元素包括类、对象、接口、关联、依赖、泛化、实现、组合和聚合等。
这些元素用于描述系统的静态结构和动态行为。
2. 请解释类和对象之间的区别。
答:类是对一组具有相同属性和行为的对象的抽象描述,而对象是类的实例。
类定义了对象的共同特征和行为,而对象则具体体现了这些特征和行为。
3. 什么是类图?它包含哪些元素?答:类图是UML中最常用的一种图形表示方法,用于描述系统的静态结构。
它包含类、对象、关联、依赖、泛化、实现等元素。
类图通过图形符号和连线来表示这些元素之间的关系和交互。
4. 请解释关联和依赖之间的区别。
答:关联表示类之间的静态关系,描述了对象之间的连接和交互。
依赖表示一个类对另一个类的使用,一个类的实现可能依赖于另一个类的方法或属性。
5. 什么是泛化和实现?答:泛化表示类之间的继承关系,用于描述一个类继承另一个类的属性和行为。
实现表示一个类实现了一个接口,即实现了接口中定义的方法。
6. 请解释组合和聚合之间的区别。
答:组合和聚合都表示类之间的整体与部分的关系。
组合表示部分对象的生命周期与整体对象的生命周期相关联,整体对象拥有部分对象。
聚合表示部分对象的生命周期与整体对象的生命周期无关,整体对象包含部分对象。
7. 什么是顺序图?它用于描述系统的什么行为?答:顺序图是一种用于描述系统的动态行为的图形表示方法。
它通过显示对象之间的交互和消息传递顺序,描述了系统中对象之间的时序关系。
8. 请解释活动图和状态图之间的区别。
答:活动图用于描述系统的业务流程或算法流程,强调活动之间的控制流和数据流。
C++第五章_类与对象习题解答
第五章类与对象习题一.基本概念与基础知识自测题5.1 填空题5.1.1 引入类定义的关键字是(1)。
类的成员函数通常指定为(2),类的数据成员通常指定为(3)。
指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。
通常用类的(5)成员表示类的属性,用类的(6)成员表示类的操作。
答案:(1)class(2)公有的public(3)私有的private(4)公有的public(5)数据(6)函数5.1.2 类的访问限定符包括(1)、(2)和(3)。
私有数据通常由(4)函数来访问(读和写)。
这些函数统称为(5)。
答案:(1)public(公有的)(2)private(私有的)(3)protected(保护的)(4)公有的成员函数(5)类的接口5.1.3 通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。
而在物理上通常只有(2)代码区。
只有在(3)定义,并(4)的函数和加了关键字(5)的函数例外。
答案:(1)独立的(2)共用的(3)在类说明中(4)不包括循环等复杂结构(5)inline5.1.4 C++中支持三种域:(1)、(2)、(3)。
函数域被包括在(4)中,全局域被包括在(5)中。
using指示符以关键字using开头,后面是关键字(6),最后是(7)。
这样表示以后在该名字空间中所有成员都(8)。
如不使用using指示符则在使用时要加::,称为(9)运算符。
答案:(1)局部域(local scope)(2)名字空间域(namespace scope)(3)类域(class scope)(4)局部域(5)名字空间域(6)namespace(7)名字空间名(8)可以直接被使用(9)域5.1.5 引用通常用作函数的(1)和(2)。
对数组只能引用(3)不能引用(4)。
答案:(1)参数(2)返回值(3)数组元素(4)数组名本身5.1.6 构造函数的任务是(1)和(2)。
构造函数无(3),但并不表示(4)。
第7章 类和对象 习题解答
public公有成员,既可以被本类中的成员函数所引用,也可以被类作用域外的其他函数引用。
protectd保护成员,不能被类外访问(与私有成员类似),但可以被派生类的成员函数访问。
关于私有、公有和保护的概念,例如:一个家庭的住宅,客厅一般是允许客人进入的(公有的),而卧室只允许家庭成员进入(私有的),祖传的珍宝则只能由家庭成员继承(保护的),一般不会外传。
类(class):类是对象的抽象,如可以把中国人、美国人、日本人等所有国家的人抽象为“人”类,再如,凡是有轮子、能滚动前进的陆地交通工具统称为“车”。抽象的过程就是将有关事物的共性归纳、集中的过程。
因此,类是对象的抽象,而对象则是类的特例或是类的具体表现。
温馨提醒:类是抽象的,不占用内存,而对象是具体的,占用存储空间。
}
};
如果在类的声明之外定义成员函数时,必须在函数名前面加上类名和作用域运算符“::”,予以限定。例如,若上面的display( )成员函数放在类声明之外定义,则应写成:
voidCRect::display(){//函数表明对数据的具体操作
cout<<"Circle="<<2*(right-left) + 2*(bottom-top)<<'\n';
温馨提醒:(1)类体声明中如果没有说明成员的属性,则默认为private;
(2)成员函数可以访问本类中的任何成员(包括私有、公有和保护的成员);
(3)成员函数与普通函数一样可以重载。
7.3.4类与结构体的对比
类与结构体的共同点:类的成员可以是成员数据,也可以是成员函数。同样经过C++功能的扩展后,结构体中也可以有成员数据和成员函数的存在。类中成员的定义可以有public,private,protected访问权限控制,同样在结构体定义中也可以有这些控制说明。
(完整word版)UML面向对象分析与设计教程课后习题答案(胡荷芬高斐)选择题部分
UML面向对象分析与设计教程课后习题答案选择题第一章(1) 对象程序的基本特征是(ABCD)A.抽象B.封装C.继承D。
多态(2)类包含的要素有(ABC)A.名字B。
属性 C.操作D。
编号(3)下列关于类与对象的关系说法不正确的是(A)A.有些对象是不能被抽象成类的B。
类给出了属于该类的全部对象的抽象定义C.类是对象集合的再抽象D.类是用来在内存中开辟一个数据区,存储新对象的属性(4)面向对象方法中的(C)机制给予子类可以自动的拥有(复制)父类全部属性和操作.A。
抽象B。
封装C。
继承D。
多态(5)建立对象的动态模型一般包含的步骤有(ABCD)A。
准备脚本B。
确定事件C.准备事件跟踪表D.构造状态图第二章⑴UML中的关系元素包括(ABCD).A.依赖B。
关联C.泛化D。
实现⑵在UML中,定义了面向对象的事物,这些事物分为(ABCD).。
A。
结构事物B。
行为事物C。
分组事物D.注释事物⑶UML中的图包括(ABC)。
A.用例图B。
类图C。
状态图D。
流程图⑷UML的视图不包括(BCD).A.用例视图B。
类视图C。
状态视图D。
物理视图⑸下面不属于UML中的静态视图的是(ABC).A. 状态图B.用例图C.对象图D. 类图第三章(1)下列说法正确的是(ACD)A.在用例视图下可以创建类图B.在逻辑视图下可以创建构件图C.在逻辑视图下可以创建包D.在构件视图下可以创建构件(2)在Rational Rose 的逻辑视图下可以创建(ABCD) A.类图 B.构件图C.包 D.活动图(3)Rational Rose 建模工具可以执行的任务有(ABCD) A.非一致性检查 B.生成C++语言代码C.报告功能 D.审查功能(4)Rational Rose 中支持的视图不包括(D)A.逻辑视图 B.构件视图C.部署视图D。
机构视图(5)在构建视图下的元素可以包括(ABC)A.构件 B.构件图C.包 D.类第四章(1)类中的方法的可见性包括(ABC)A.privateB.publicC.protectedD.abstract(2)下面属于UML中类元的类型的是(ABCD)A.类B.对象C.构件D.接口(3)类之间的关系包括(ABCD)A.泛化B.关联C.实现D.依赖(4)下列关于接口的关系说法正确的是(ABCD)?A.接口是一种特殊的类B.所有接口都是有构造型<<interface>〉的类C.一个类可以通过实现接口从而支持接口所指定的行为D.在程序运行的时候,其他对象可以不仅需要依赖与此接口,还需要知道该类对接口实现的其他信息(5)下列关于类方法的声明正确的是(AB)A.方法定义了类所许可的行为B.从一个类所创建的所有对象可以使用同一组属性和方法C.每个方法应该有一个参数D.如果在同一个类中定义了类似的操作,则他们的行为应该是类似的第五章1.在Rational Rose 2003中,支持(ABCD)的构造模型A。
第六章到第九章C++答案
第六章6.1 请简述类和对象的关系。
答:类是一种抽象数据类型,是定义对象的蓝本,它描述这一类对象所共有的属性。
对象是这种数据类型的一个具体实例。
类是抽象的,而对象是具体的。
用一个形象的比喻:类就像工厂中生产产品的模子,而对象则像用这个模子生产出的具体产品。
6.2 简述类的公有类型成员和私有类型成员的区别。
答:类的共有成员是类为外界提供的接口,外界可以通过它们来访问类。
具体地说,可以从这个类的外部使用对象名加点操作符来访问这个类中的共有成员,如果是静态的共有成员,还可以使用类名加域解析操作符去访问它们。
而类的私有成员则不能用上述的形式从类外直接访问,它们只能被同一类的成员函数访问。
6.3 以下的叙述中,那条是不正确的。
A、在类的成员函数中,可以访问类的public型成员。
B、在类的成员函数中,可以访问类的private型成员。
C、在类的成员函数中,可以访问类的protected型成员。
D、在类的成员函数中,不可以访问类的private型成员。
答:D是不正确的。
6.4 以下的叙述中,那条是正确的。
A、使用对象名和点操作符只能访问类的public成员。
B、使用对象名和点操作符能访问类的public和protected成员,不能访问private成员。
C、使用对象名和点操作符能访问类的public和private成员,不能访问protected成员。
D、使用对象名和点操作符能访问类的任意类型的成员。
答:A是正确的。
6.5 请创建一个表示雇员信息的employee类,其中的数据成员包括:char数组型的私有成员name,用来存放雇员的姓名;int型的私有成员empNo,表示雇员的编号;float型的私有成员salary,存放雇员的月薪。
函数成员包括:给上述每个私有数据成员赋值的公有成员函数,和读取这些私有数据成员的公有成员函数以及显示雇员信息的公有成员函数display。
解:employee类及测试该类的完整程序代码如下:#include<iostream>using namespace std;class employee{private:char name[20];int empNo;float salary;public:void setname(char *cp);void setempNo(int no);void setsalary(float sa);char*getname();int getempNo();float getsalary();void display();};void employee::setname(char*cp){int i=0;while(*cp){name[i]=*cp;i++;cp++;}name[i]='\0';}voidemployee::setempNo(int no){empNo=no;}voidemployee::setsalary(float sa){salary=sa;}char*employee::getname(){return name;}int employee::getempNo(){return empNo;}float employee::getsalary(){return salary;}void employee::display(){cout<<"工号为"<<empNo<<"的雇员"<<name<<"的月薪为"<<salary<<endl;}void main(){employee em1;char name[20];int emno;float sa;cout<<"请输入雇员的姓名:";cin>>name;cout<<"请输入雇员工号:";cin>>emno;cout<<"请输入雇员薪水:";cin>>sa;em1.setname(name);em1.setempNo(emno);em1.setsalary(sa);cout<<"工号为"<<em1.getempNo()<<"的雇员"<<em1.getname()<<"的薪水为"<<em1.getsalary()<<endl;}6.6 创建一个表示汽车的类automobile,其中的数据成员包括:char数组型的私有成员brand,表示汽车的品牌;float型私有成员load,表示汽车的载重量;float型私有成员speed,表示汽车的行驶速度。
对象和类的练习题答案
对象和类的练习题答案1、A、BExtends子句用于指定一个类扩展另一个类。
子类可以声明为abstract,而不管超类是不失声明为abstract的。
子类不继承超类的私有的的成员。
一个类不能同时声明为abstract和final的,因为abstract类需要扩展才能成为有用的,而final类是不能被扩展的。
类的可访问性不受其成员的可访问性的控制。
即所有的成员都声明为private的类仍然可以声明为public2、B、E继承定义了一种“是一个”的关系。
Object类有一个叫equals的公共方法,但是它没有任何叫做length的方法。
由于所有的类都是object类的子类,因此它们都继承了equals()方法。
从而,所有的java对象都有一个叫做equals的公共方法。
在java中一个类只能扩展单个超类,但是对于一个超类可以扩展多少个子类没有限制。
3、B、C子类无须重新定义超类中所定义的所有方法。
子类有可能定义一个方法与超类所定义的方法有着同样得名字及参数,不过它们的返回类型也应该是相同的。
这叫做方法的重写。
子类可以定义一个字段,以隐藏超类中定义的一个字段。
两个类不能彼此作为对方的超类。
4、A、B、DBar是Foo的一个合法子类,它重载了方法g()。
语句a.j=5不是合法的,因为Bar 类中的成员j不能通过Foo引用来访问。
语句b.i=3也不是合法的,因为私有成员i不能在Foo类的外部访问。
5、A一个方法可以通过定义一个具有同样名称和参数列表,并且返回类型同超类中的方法一样的方法来重写。
私有方法不能在子类中重写,但是允许子类定义一个刚好有着同样的签名的新方法。
Final方法是不能重写的。
重写方法不能返回不同类型的值,也不能声明抛出比超类中的原始方法更多的异常6、E7、C8、EMySuper类没有默认的构造函数。
这意味着子类中的构造函数必须显示的调用超类构造函数来提供所需的参数。
所提供的构造函数是通过在其第一个语句中调用super(num)来完成这一点的。
[2017年整理]4章:类图与对象图习题
第4章类图与对象图习题一、简答题1. 什么叫对象?答:对象的本意是指认识的指向物。
在计算机软件中,对象用来表示客观事物的一个实体,它封装了一组属性和操作。
从形式上看,对象是一段具有特定语法规则的程序单元,它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的服务职能。
2. 简述实例的概念。
答:实例是类元中的一个元素。
3. 简述类元的概念。
答:类元是对聚集一组具有共同特征的实例的模型元素的通称,类、接口、用例、参与者、关联等都属于类元。
类元的名字用标识符来表示,首字母要大写。
类元会包括一组实例。
4. 什么叫类?答:类是具有相同性质的一组对象的集合,这组对象具有相同的特征、约束和语义。
5. 类有哪几种类型?答:按阶段分:业务对象,PIM类,PSM类;按作用分:实体类,控制类,界面类。
6. 简述接口的概念。
答:接口是一种类元,聚集了一组需要通过其他类元实现的公共的操作和属性。
二、填空题1.认识的对象可以是客观中一个具体的(事物),也可以是主观中的一个抽象(观念)。
2.软件中的对象是一段具有特定语法规则的(程序单元),它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的(服务职能)。
3.类描述具有相同性质的一组对象的(集合),类用(矩形)来表示。
4.按作用,可以把类分为(控制类)、边界类和(实体类)几种类型。
5.接口可以分为(供口)和(需口)两种类型。
三、选择题1.在认识过程中,下面哪个不是对象的要素(D)A:认识的指向物 B:认识者C:认识指向物在认识者主观中的反映 D:认识的背景2.下面哪一个对对象的说法不正确(B)A:客观实体 B:事物的对立面C:认识的指向物 D:软件的一个基本单位3. 下面属性命名不正确的是(A)A *BirthDay:DateB #studentBirthDay:Date=1999-10-21C -price:float=12.01{R/W}D +studentName:String=“张敏”4.指出下面不合适的类名(B)A:材料 B:事物C:订单 D:会员5.下面不是对象图作用的是(A)A:功能逻辑建模B:初期分析工具C:描述业务场景D:模拟运行场景四、练习题1.在一个订货系统中,采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货商也可以给多个采购员供货。