课后习题 第十章 类与对象
- 格式:pdf
- 大小:70.54 KB
- 文档页数:15
类和对象一、选择题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 )。
类与对象习题类与对象选择题5.若有以下说明,在类外使⽤对象objX成员的正确语句是( c )。
class X{ int a;void fun1();public:void fun2();};X objX ;(a) objX.a=0; (b) objX.fun1(); (c) objX.fun2(); (d) X::fun1();6.若有以下说明,对n的正确访问语句是( b )。
class Y{ //…… ;public:static int n;};int Y::n;Y objY;(a) n=1; (b) Y::n=1; (c) objY::n=1; (d) Y->n9.若有以下类T说明,函数fFriend的错误定义是( c )。
class T{ int i;friend void fFriend(T&,int) ;};(a) void fFriend(T &objT,int k) { objT.i = k; }(b) void fFriend(T &objT,int k) { k = objT.i; }(c) void T::fFriend(T &objT,int k) { k += objT.i; }(d) void fFriend(T &objT,int k) { objT.i += k; }10.在类定义的外部,可以被访问的成员有( c )。
(a) 所有类成员(b) private或protected的类成员(c) public的类成员(d) public或private的类成员12.说明⼀个类的对象时,系统⾃动调⽤( b );撤消对象时,系统⾃动调⽤( c )。
1(a) 成员函数(b) 构造函数(c) 析构函数(d) 友员函数13.下⾯对构造函数的不正确描述是( b )。
(a) 系统提供默认的构造函数(b) 构造函数可以有参数,所以也可以有返回值(c) 构造函数可以重载(d) 构造函数可以设置默认参数14.下⾯对析构函数的正确描述是( c )。
类和对象一、选择题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)。
类和对象(2)【实验目的】:1. 掌握类的构造函数和析构函数的使用方法。
2. 掌握类的拷贝构造函数的使用方法。
【实验内容】:1.读以下程序,为下列程序添加注释,并给出程序运行结果。
并解释为什么得到这样的结果。
上机验证你的结果是否正确。
2. 完成下列要求。
1) 读以下程序,为下列程序添加注释,并给出程序运行结果。
并解释为什么得到这样的结果。
上机验证你的结果是否正确。
2) 将Coordinate 类中带有两个参数的构造函数进行修改,在函数体内添加下述语句:cout << “Constructor is called.\n “; 写出程序的运行结果,并解释输出的结果。
3) 按下列要求进行调试:在主函数体内,添加下述语句:Coordinate p4;Coordinate p5(2); 调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当的修改?4) 经过以上2)和3)步的修改后,结合运行结果分析:创建不同的对象时会调用不同的构造函数。
□Bine 1 udr< i n>・ t 「•豪 nAUflnf Z ・M!|J*(^ 3.(4; Ma 名% DiDniiriitft^tr<public:CDftrdinatfflnlr wl.iftt ・1)>7尸诵魯;詐杠话巧筑X-K.1 ir/; mot << "C-anWriiirtBr i<; callf i d An*1; 、Coord indtc (O OHHTI I imitvCi p) M"托口 构這函魏^Cwr Ji Mt« <) {eflirt <C C r struct or is c »llea\n ,,s}//折玛=比 int Get X( ){r&itur«i u; } lnt GrlYOi 『@f ii y ;y privet*:int » P V P :>sCeinriiinLdi-r;: Coo r flin^i t p( £n<i r rf i n-a t F fi p)*K S P-M ;FP-JI*£0Lkit<C"C*py -irdtiall 足Nt:左MI 3r )Et 『■亡>t<j 『 Is called^n^stfet FldtAf) {CQOTdlMtf p 12沁屛"谓用 穽蚩些1电世文PV21& coardln^if ”"":"弔1裤11|用想1构令1音餐P#聊刊 EDWdinatv ■$-從討忌二疣轴角將良呜造盛竅 Cuurdlndlt! >;Covrdin.ilr 闷7*的;M 丘ff if ■—介/■■-歆卜咗1洁> 牌 cout^C k |ii-(*<<p3 .G ^IX()«*• ,*«JK 3-fi&tV<<«) Vn B,; 亍ct.ru3. 假使在程序中已经声明了类point ,并建立了其对象 pl 和p4。
JAVA 类和对象及数组习题一、选择题(1)下列构造方法的调用方式中,正确的是(D )——原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。
A.按照一般方法调用B。
由用户直接调用ﻫC.只能通过new 自动调用D。
被系统调用(2)在Java 中,能实现多重继承效果的方式是( C )——原因:一个类可以同时实现多个接口。
Java 接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。
◻A。
内部类B.适配器 C.接口D.同步(3)int 型public 成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java 中定义常量用关键字final 来定义.A.public int MAX_LENGTH=100 B。
finalintMAX_LENGTH=100 ﻫC.public const int MAX_LENGTH=100D.p ublic final int MAX_LENGTH=100(4)下列叙述中,正确的是( A)—原因:Java 严格区分大小写,所以变量number 与Number 不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*---——--*/"和文档注释/**-—---- */。
Java 源文件中的public 类只能有一个。
◻A.声明变量时必须指定一个类型ﻫ B. Java认为变量number 与Number 相同ﻫC. Java中唯一的注释方式是"//"ﻫD。
源文件中public类可以有0 或多个(5)下列叙述中,错误的是(D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。
所以可以认为子类是父类的扩展。
◻A。
父类不能替代子类B.子类能够替代父类ﻫC。
子类继承父类D.父类包含子类(6)下列代码中,将引起编译错误的行是(B)—原因:定义float 型变量并对其初始化时,其值后面要加一个f。
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.业务设计包B.业务分析模型包C.业务用例模型包D.CORBA Module包2.对照子系统进行建模时,在Rational Rose 2003中,内部支持的系统有(CD)A.数据系统 B.视图系统C.程序系统D.业务系统3.建立模型时包的嵌套不宜过深,包的嵌套一般以(A)为宜A.2~3层 B.3~4层C.1~2层 D.3~5层4.下列关于包的描述中正确的是(ABCD)A.每个包必须有一个区别于其他包的名称B.包中可以包含其他元素,如类,接口,组件和用例等C.引入(import)使得一个包中的元素可以单向访问另一个包中的元素D.包的可见性分为protected,public和private5.下列对于创建包的说法不正确的是(A)A.在序列图和协作图中可以创建包B.在类图中可以创建包C.如果将包从模型中永久删除,包及包中的内容都将被删除D.在创建包的依赖关系时,尽量避免循环依赖第六章1.下面哪些是识别用例时要引起的注意要点?(ABC)A.参与者希望系统提供什么功能B.参与者是否会读取,创建,修改,删除,存储系统的某种信息。
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。
简答题第一章1.面向对象设计的基本特征有哪些?这些特征对软件设计有何帮助?封装性继承性多态性在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.2.类与对象的区别是什么?类是抽象的,不具体的。
就像有些东西可以归为一类,比如说狗,猫,猪。
它们都是动物,我们就可以归为一类。
而猫,狗就是动物类中的一个对象。
3.什么是软件生命周期?生命周期包括几个阶段?软件的生命周期,亦称软件的生存周期。
它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。
分为:一般分为定义,开发,维护三大阶段,定义阶段有可行性论证和开发计划,需求分析,开发阶段有概要设计,详细设计和编码,维护阶段有测试,运行维护4.面向对象与uml的关系?umL是统一建模图,用于便于描述类之间的关系等,是用来帮助你更好进行面向对象的设计。
5.面向对象设计与传统软件相比,有何优点?更有针对性更容易让客户满意减少修改提高效率第二章模型元素有哪些?UML中模型元素太多了,比如用例图中的元素有用例,角色,扩展关系,包含关系,类图中的元素有类,接口,关联等等,每一种框图都有各自独有的元素2.简述uml通用机制组成以及它的作用?一、修饰。
在使用UML语言建模时,可以将图形修饰附加到UML图中的模型元素上。
比如,当一个元素代表某种类型的时候,它的名称可以用粗体字形类显示;当同一元素表示该类型的实例时,该元素的名称用一条下划线修饰。
二、注释。
UML语言中用一条虚线将注释连接到它为之解释的或细化的元素上。