【C++基础入门】11.C++之进阶面向对象

文章目录

一、进阶面向对象(上)

二、小结(上)

三、进阶面向对象(下)

 四、小结(下)


一、进阶面向对象(上)

  • 面向对象的意义在于
    • 将日常生活中习惯的思维方式引入程序设计中
    • 将需求中的概念直观的映射到解决方案中
    • 模块为中心构建可复用的软件系统
    • 提高软件产品的可维护性可扩展性
  • 对象是面向对象中的两个基本概念
    • 类∶指的是一类事物,是一个抽象的概念
    • 对象∶指的是属于某个类的具体实体
    • 类是一种模型这种模型可以创建出不同的对象实体
    • 对象实体是类模型的一个具体实例

        注:一个类可以有很多对象,而一个对象必然属于某个类。

  • 生活中的类和对象

【C++基础入门】11.C++之进阶面向对象_第1张图片

【C++基础入门】11.C++之进阶面向对象_第2张图片

 

  • 类和对象的意义
    • 类用于抽象的描述一类事物所特有的属性和行为
      • 如:电脑拥有CPU,内存和硬盘,并且可以开机和运行程序
    • 对象是具体的事物,拥有所属类中描述的一切属性和行为
      • 如:每一只老虎都有不同的体重,不同食量以及不同的性情

二、小结(上)

  • 面向对象是当今软件开发中的重要方法
  • 对象是面向对象理论中的基本概念
  • 类和对象均来源于日常生活中
  • 每个类可以有多个对象
  • 每个对象必然属于某个类

三、进阶面向对象(下)

  • 类之间的基本关系
    • 继承
      • 已存在类细分出来的类和原类之间具有继承关系( is-a )
      • 继承的类(子类)拥有原类(父类)的所有属性和行为
    • 组合
      • 一些类的存在必须依赖于其它的类,这种关系叫组合
      • 组合的类在某一个局部上由其它的类组成
  • 类之间的基本关系 -- 继承

【C++基础入门】11.C++之进阶面向对象_第3张图片

         惠普电脑和苹果电脑都继承于电脑,具备电脑的所有特征。

  •  类之间的基本关系 -- 组合

【C++基础入门】11.C++之进阶面向对象_第4张图片

  •  类的表示法

【C++基础入门】11.C++之进阶面向对象_第5张图片

  •  类的表示法 -- 简化

【C++基础入门】11.C++之进阶面向对象_第6张图片

  •  类的表示法 -- 改进1

【C++基础入门】11.C++之进阶面向对象_第7张图片

  •  类的表示法 -- 改进2

【C++基础入门】11.C++之进阶面向对象_第8张图片

  •   类的表示法 -- 改进3

【C++基础入门】11.C++之进阶面向对象_第9张图片

         这有点代码的味道了,那么如何用程序设计中的概念描述类的属性和行为?下面做最终改进。

  •   类的表示法 -- 改进4

【C++基础入门】11.C++之进阶面向对象_第10张图片

        下面把上面表示方法写成代码,看看编译器会不会报错吧。

#include 

struct Biology {
    bool living;
};

struct Animal : Biology {
    bool movable;
    void findFood() { }
};

struct Plant : Biology {
    bool growable;
};

struct Beast : Animal {
    void sleep() { }
};

struct Human : Animal {
    void sleep() { }
    void work() { }
};


int main()
{
    return 0;
}

        下面为输出结果: 

【C++基础入门】11.C++之进阶面向对象_第11张图片

         可以看到,编译器并没有报错,也就证明面向对象那种表示方法是可以的。

 四、小结(下)

  •  类之间可以存在继承关系组合关系
  • 继承关系中子类拥有父类的一切属性和行为
  • 组合关系是类之间整体和部分的关系
  • 类及类之间的关系可以有不同的表示法
  • 编译器对类的表示法有具体的要求

你可能感兴趣的:(#,C++入坑之路,c++,linq,开发语言)