山东大学软件学院面向对象编程导论期末考试回忆版

文章目录

    • 一、考试时间
    • 二、考试范围
    • 三、考试题目
      • 3.1 简答题(4*5 = 20分)
      • 3.2 设计题 (10+20+10+20 = 60分)
      • 3.3 综合题(20分)
    • 四、后记

一、考试时间

2021年7月5日 8:30-10:30

本次考试为软件学院2019级大二下面向对象期末考试,具体的题目跟回忆版会有一定差距,可能有错误的地方,记不清了,还请见谅

二、考试范围

老师上课讲过的ppt,包含面向对象基础知识,设计原则,设计模式

类图要求掌握

重点内容在老师考前给的提纲上,老师说提纲以外的内容在考卷上的分值小于5%

三、考试题目

3.1 简答题(4*5 = 20分)

1.描述重写,重载,重定义有什么区别(要求写出一个类的代码,然后根据代码说明)

2.描述静态方法绑定和动态方法绑定,并从效率,忘了,忘了,三个方面对比两种绑定方式

3.描述什么是替换原则?描述三种内存分配方式?

4.代理有几种形式,分别有什么用途

3.2 设计题 (10+20+10+20 = 60分)

1.题目给出了一个UML图,里面描述了一个FileName类,继承String类。问这种方法违反了哪个设计原则,应该如何改进,画出改进后的类图
山东大学软件学院面向对象编程导论期末考试回忆版_第1张图片

2.类图大致如下,SwitchToggle里还有一个构造方法没画上
山东大学软件学院面向对象编程导论期末考试回忆版_第2张图片
(1)要求改进以上结构,设计一个开关类,这个开关类可以实现对灯泡和灯管都进行开启和关闭的操作,画出类图
(2)进一步拓展,要求这个开关类不仅能实现对电灯的控制,还能实现对电视,电冰箱,空调的控制,画出对应的类图,并写出关键代码,要求满足DIP原则

3.买股票,如果一个人买了一支股票,而这支股票的价格变动超过5%,就向所有股民发送消息,如果一个人将一支股票卖掉了,那么他不会收到消息。问用什么设计模式实现,要求画出类图和关键代码(发送消息的代码)

4.有一个计算机程序,可以实现绘图功能。现有一个Shape类,要对圆,三角形,矩形实现填充颜色和描绘轮廓的方法

(1)使用什么模式实现?画出对应的类图,写出关键代码
(2)将圆,三角形,矩形(具体的图形类)放入一个链表中,并打印输出

3.3 综合题(20分)

要求补全代码,使用策略模式。

题目的背景是给了一个Car类,这个Car类有两个子类。然后给了一个策略接口,策略类有两个对应的子类。这些类全部以类图的方式呈现

题目已经给出了部分代码,要求补全策略类接口的代码,还有Car类的代码,总共有5空,一空4分

四、后记

面向对象考试就这样结束了,总的来说,这次考试设计题有一定的难度,要求自己判断要用什么设计模式,并给出对应的类图,关键代码。综合题难度较低,简答题难度适中,掌握好重点内容问题应该就不大。

最后祝学弟学妹面向对象期末考试顺利!

你可能感兴趣的:(山东大学软件学院期末考试回忆版,山东大学,软件学院,面向对象,设计模式,设计原则)