C++深度解析(9)—进阶面向对象

1.面向对象基本概念 

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

 2.生活中的类和对象 

3.类和对象的意义 

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

4.类之间的关系

  • 根据生活中的经验,我们可以把事物进行分类,类之间的界限一般都是很清晰的,如电脑类和老虎类
  • 但是一些类可以再细分,如电脑类可以再分为Dell类,Sony类以及HP类等等
  • 从同一个类细分出来的类和原来的类之间是有关系的,这种关系叫做继承,如HP类继承了电脑类
  • 继承的类拥有原类的所有属性,如HP电脑就是一种电脑,HP电脑也同样的拥有CPU,内存和硬盘

5.深入理解类

  • 不但可以抽象的描述一类事物的属性,也可以抽象的描述一类事物的行为
  • 从同一个类细分出来的类不但继承了原有类的属性同时也继承了原有类的行为
  • 继承出的新类可以拥有自己特有的属性和行为
  • 属性主要用于描述类的静态特性,行为主要用于描述类的动态特性
  • 如:老虎类的属性有颜色,体重,而行为有捕猎和逃跑,而兔子类的属性也有颜色和体重,但是兔子类的行为没有捕猎,只有逃跑 另外,从一个更高的层面看,老虎和兔子都属于动物类,它们都继承了动物类的属性和行为,另外又又自己特定的属性和行为

6.深入理解对象

  • 对象是一个类的实例,所谓实例即一个类中的特定的事物
  • 一个类可以有多个实例,并且这些实例之间是互不相同的,如:人这个类中有几十亿个不同的个体,每一个人都是人这个类的一个实例
  • 对象和类的关系如同模具和成品的关系,类就是一个模具,利用这个模具可以生成多个不同的成品,而这些成品就是各不相同的对象
  • 同一个类的不同对象都有对应的类中的属性和行为,但是这些属性和行为可能不完全相同

7.类的表示法

  • 类的表示法  - 改进1

  • 类的表示法  - 改进2

  • 类的表示法  - 改进3

  • 类的表示法-改进4

// 7.1.cpp
#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() 
    {
        printf("I'm sleeping...\n");
    }
    
    void work()
    {
        printf("I'm working...\n");
    }
};

int main(int argc, char *argv[])
{
    Human human;

    human.living = true;
	human.movable = false;
    human.sleep();
    human.work();
    
    printf("Press any key to continue...");
    
	getchar();
    
	return 0;
}

8.小结

  • 类和对象是面向对象方法论中的两个基本概念
  • 类指的是生活中有共同特性的一类事物
  • 对象是类的一个具体实例,拥有所属类的特征
  • 一个类可以有多个对象
  • 一个对象必然属于某个类 面向对象方法论直接将生活中的事物映射到程序中
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值