目录
第十三章.面向对象程序设计
第一节.C++语法要点
类和派生类的定义
类外定义函数体
构造函数与析构函数
构造函数是在整个程序运行的过程中,它会自动去调用的一部分的函数。在分析构造函数的时候,还要结合它的父类的构造函数来进行分析。当然构造函数会出现的比较多,析构函数几乎没有出现过。对于一些基本的用法语法要搞清楚。
虚函数
对于虚函数的定义,涉及到相关的关键字。因为在整个的面向对象程序设计的过程中,咱们会涉及到虚函数,接口,虚类这些是出现的非常之多,因为这些东西是设计模式当中经常要用到的一些内容。
第二节.Java语法要点
Java类的定义
抽象类abstract class
的定义,通过抽象方法进行判断。
习题
(1)根据Beverage被抽象类继承可知,Beverage也是抽象类。(2)返回值为字符串,所以这个方法应该是get方法。(3)这个肯定是一个抽象方法,但是题目不完善,不知道是啥。(4)题目表述不清,就不解释了。
Java接口的定义
习题
根据接口的性质,我们能够知道
(1)interface
(2)void drawLine(double x1, double y1, double x2, double y2)
(3)void drawCircle(double x, double y, double r)
面向对象程序设计案例分析1
抽象工厂模式是一种什么样的模式?它能够解决什么样的问题?
抽象工厂模式是设计模式当中的一种典型的创建型模式。它的特点就在于它会有多个不同的工厂,我们只要指定相应的工厂,那么由这一个工厂产生出来的相应的类属于同一种系列的类。当然产生出来对象就是这一个系列的对象。在这一个题当中要求支持 sqlserve 和 access 两种不同的数据库,所以我们能够用到抽象工厂模式。当我们连接到的是 access 数据库的时候,那么创建相应的对象的时候,就创建的是 access 的数据库连接的这一个对象。数据库的相关的表或者是数据操作的一些对象,它可以了灵活地去指定不同系列的内容,这是抽象工厂这种模式。本质就是提供一个接口,然后对接口进行不同的实现。
(1)void Insert(Department department)
(2)Department GetDepartment(int id);
(3)implements IDepartment
(4)implements IDepartment
(5)interface IFactory
(6)IDepartment CreateDepartment();
这六个空全部都是和定义相关的,没有一个地方是真正的考察到了设计模式的内容。所以在应对面向对象的程序设计这样的题的时候,我们首先要去解决的就是定义类型的问题,这类问题非常好拉分,形式非常固定,像这个题里面的这些位置是经常考到的。所以大家要熟知这一点,平常多加练习,以便在考试的时候对这种简单问题能够不丢分的应对它。
面向对象程序设计案例分析2
何为内爆炸?
就是在一棵类树上面进行相应的这个子类的分支。当你的这一个分支很多的时候,整个类的体系相当庞大,无法控制,叫做了类爆炸。
桥接模式如何解决内爆炸
因为软件存在内爆炸,所以咱们采用桥接模式开发。因为桥接的模式会把类树分成两棵树,它独立的两棵树用一个桥连接起来,这样子就避免了类数分支过多,层数过多的问题。本质上就是将抽象部分和实体部分分开,通过聚合关系进行维护。也就是抽象类中存在成员变量。
(1)interface
(2)void drawLine(double x1, double y1, double x2, double y2);
(3)void drawCircle(double x, double y, double r);
(4)DP1.draw_a_Circle(x, y, r);
(5)DP2.drawcircle(x, y, r);
(6)abstract void draw();
(4)(5)根据题目要求需要绘制圆形,当然程序肯定不是绘制圆形的,这需要我们看类图进行分析,存在依赖关系。使用的就是DP1软件来达到目的。即通过类名进行调用。因为依赖关系是一种使用的关系,所以要尽量不使用双向的互相依赖。(6)通过子父类继承关系可以知道这一空一定是抽象方法,因为他是抽象类不是接口。