第7课 - 面向对象基本概念
一.基本概念
1.1类和对象是面向对象中的两个基本概念
“类"指的是一类食物,是一个抽象概念
“对象”指的属于某个类的一个实体,是一个具体存在的事物
类是一种"模板",可以通过这种模板创建出不同对象的"实例"
对象"实例"是类"模板"的一个具体实现
一个类可以有很多对象,而一个对象必然属于某个类
二.类和对象的意义
2.1 类用于抽象的描述一类事物所特有的属性和行为。
如:电脑类的每个对象都有CPU,内存和鹰派,电脑类的每个对象都可以开机和运行程序
2.2 对象是一个具体的食物,拥有其所属类的所有属性,并且每个属性都是一个特有的值
如:老虎的每个对象(每只老虎),都有不同的体重,不同的食量,以及不同的性情
三.类之间的关系
3.1 根据生活中的经验,我们可以把事物进行分类,类之间的界限一般都是很清晰的,如电脑类和老虎类
3.2 但是一些类可以再细分,如电脑类可以再分为Dell类,Sony类以及HP类等等
3.3 从一个类细分出来的类和原来的类之间是有关系的,这种关系叫做继承,如HP类继承了电脑类
3.4 继承的类拥有原类的所有属性,如HP电脑就是一种电脑,HP电脑也同样拥有CPU,内存和硬盘
四.深入理解类
4.1 类不但可以抽象的描述一类事物的属性,也可以描述一类事物的行为
4.2 从一个类细分出来的类不但继承了原有类的属性同时也继承了原有类的行为
4.3 继承出的心累可以拥有自己特有的属性和行为
4.4 属性主要用于描述类的静态特性,行为主要用于描述类的动态特性
例如: 老虎类的属性有颜色,体重,行为有捕猎和逃跑,而兔子类的属性也有颜色和体重,但是兔子类的行为没有捕猎,只有逃跑
另外,从一个更高的层面看,老虎和兔子都属于动物类,他们都继承了动物类的属性和行为,另外有自己特定的属性和行为。
五.深入理解对象
5.1 对象是一个类的实力,所谓实例即一个类中特定的食物
5.2 一个类可以有多个实例,并且这些实例是互不相同的
例如,人这个类中有几十亿个不同个体,每一个人都是这个类的一个实例
5.3 对象和类的关系如同模具和成品的关系,类就是一个模具,利用这个模具可以生产多个不同的成品,而这些成品就是各不相同的对象。
六.类的表示
Source Example 6:
#include <iostream>
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 am Sleeping!\n");
}
void work()
{
printf("I am Working!\n");
}
};
int main(int argc, char** argv) {
Human human;
human.living = true;
human.Sleep ();
human.work();
return 0;
}
输出结果如下