进阶面向对象

1 你考虑过么?

日常生活中,我们都习惯对事物进行分类。那么,这种分类的思想是否可以引入程序设计中呢?

2 面向对象的基本概念

面向对象的意义在于

  • 将日常生活中习惯的思维方式引入程序设计中;
  • 将需求中的概念直观的映射到解决方案中;
  • 以模块为中心构建可复用的软件系统;
  • 提高软件产品的可维护性和可扩展性。

类和对象是面向对象中的两个基本概念:

  • 类:指的是一类事物,是一个抽象的概念;
  • 对象:指的是属于某个类的具体实体;
  • 类是一种模型,这种模型可以创建出不同的对象实体;
  • 对象实体是类模型的一个具体实例。

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

这里写图片描述

生活中的类和对象

这里写图片描述

这里写图片描述

类和对象的意义

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

一些有趣的问题:

  • 类一定存在实际的对象吗?(不一定)
  • 类的对象数目是确定的吗?(不一定)
  • 类一定都来源于现实生活中吗?(不一定)
  • 类都是独立的吗?类之间存在关系吗?(不都是独立的,是存在关系的)
  • 对象实例一定只属于一个类吗?(不一定)
  • 对象的实例可能完全相同吗?(不相同)

小结

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

类之间的基本关系

  • 继承

    • 从已存在类细分出来的类和原类之间有继承关系(is-a)。
    • 继承的类(子类)拥有原类(父类)的所有属性和行为。
  • 组合

    • 一些类的存在必须依赖于其他的类,这种关系叫组合。
    • 组合的类在某一个局部上由其他的类组成。

类之间的基本关系–继承

这里写图片描述

类之间的基本关系–组合

这里写图片描述

3 类的表示法

这里写图片描述

类的表示法–简化

这里写图片描述

类的表示法–改进1

这里写图片描述

类的表示法–改进2

这里写图片描述

类的表示法–改进3

这里写图片描述

类的表示法–改进4

这里写图片描述

编程实验:类的表示法

#include <stdio.h>

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;
}

小结

  • 类之间可以存在继承关系或组合关系。
  • 继承关系中子类拥有父类的一切属性和行为。
  • 组合关系是类之间整体和部分的关系。
  • 类及类之间的关系可以有不同的表示法。
  • 编译器对类的表示法有具体的要求。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值