伟大的OO思想
2013-11-23 23:11
225 查看
C++ --------OO思想
相信很多先前学过C语言的童鞋,在学习C语言的时候,听起那些学C++的小牛和大牛们谈C++这门语言和C语言的区别的时候,说的很多就是C++是一门面向对象的编程语言,它的精髓是OO思想,这一点和c语言大相径庭的。
好吧,想想当初听到这些牛言的时候,哎呀,整个世界就全乱啦,彻底颠覆了思维的底线。由于未能拥有像天龙八部里的扫地僧一样的境界,到目前还是未能深谙此精华,于是我决定记录一下自己目前对这个伟大思想的浅浅的理解,希望随着经验的增加能在多年后的某个日子能够重拾此篇文章进行更改。
一:那么-->到底什么是OO思想呢?
在面对对象的思想中,任何事物都可以被看做一个对象.
例如:我们可以把地球可以看做一个相当复杂的对象。地球上的山河胡海、动物、植物、水、土壤等等等都是对象。它们彼此之间互相联系、组合,最终又形成了地球这个超级复杂的对象。但是对于每个对象,最终抽象起来都可以分为两个要素:属性和行为。
在面对对象编程中,程序员首先面对的不再是一个个像C语言中的那些包含一个又一个变量的函数,而是要像搞改革开放要求的精神一样-----要放眼大局,想到一个事物就要想到它是由其自身所包含属性和应有的行为组成的------封装的概念就是这么出生的。(当然、这点是很chedan
滴、需要我们慢慢顿悟。。。)
二:OO思想的精华
1. 抽象
抽象的过程是对具体问题进行概括的过程,是对一类公共问题进行统一描述的过程。
对象的共性的抽象的描述----类的概念也就这么出现了,因为抽象的实现就是通过类来实现的 。。。。例如:一个班级里边有很多同学,有男有女,这些男男女女都有不同的学号、面孔、全校名次等等,于是乎我们习惯了定义一个包含了上述这些属性的类。此外,抽象也因对象都具有属性和行为,所以可以分为数据抽象和代码抽象
Egg:
一个时钟类
class Clock{
public:
int hour,minute,second; //******数据抽象
private:
showtime();
//******代码抽象
};
2. 封装
封装是面向对象思想描述的基础,封装意味着把对象相对应的的属性和行为结合成一个独立的系统单位,将一个对象的数据抽象和代码抽象整合在一块,为了增强代码的安全性和简化编程,所以需要对使用者尽可能隐藏对象的内部具体的实现细节,使用者需要通过接口,以特定的访问权限来使用类的成员。
3. 继承
龙生龙,凤生凤,老鼠儿子会打洞。。。。。这在生物学上叫“遗传”
但是呢不同的小老鼠打洞的动作却又和他爹有点不一样,有的打洞时喜欢唱歌、有的喜欢吹口哨。如果这里把小老鼠和它爹当成两个对象,把打洞看成老鼠这个类的固有特性,那么小老鼠的这种打洞行为的传承-我们就免费赠送它一个美丽的名字---[继承]
每个对象与对象之间都是有联系,这句话像极了那句p话“我们都是一家人,hhhh”,但是不管你是否苟同,他确实是对的。子类对象拥有与其基类相同的全部属性和方法,方法的具体实现不同。
这个事实上最容易理解:例如人都共有的一些属性:鼻子、眼睛、嘴巴……和一些方法:吃饭、睡觉、*&*&……
可以由此基础上再整出亚洲人、欧洲人、非洲人……
最后,我创造亚洲美女翠花……
4. 多态
多态是指在基类中定义的属性和行为被子类继承后,可以具有不同的数据类型或者表现行为等特性。
加入动物是一个基类,它的子类有小狗、小猫、小鱼……
那么作为动物呢,都有呼吸这一行为,但是这些子类继承下来后会根据自己的特性采取不同个性的呼吸方式,比如小狗小猫通过口腔和鼻腔,小鱼通过鳃云云。。。。
好了 ,暂时能整出来的就这些吧,后续再动刀。。。。
自勉:一步一个脚印!!
相信很多先前学过C语言的童鞋,在学习C语言的时候,听起那些学C++的小牛和大牛们谈C++这门语言和C语言的区别的时候,说的很多就是C++是一门面向对象的编程语言,它的精髓是OO思想,这一点和c语言大相径庭的。
好吧,想想当初听到这些牛言的时候,哎呀,整个世界就全乱啦,彻底颠覆了思维的底线。由于未能拥有像天龙八部里的扫地僧一样的境界,到目前还是未能深谙此精华,于是我决定记录一下自己目前对这个伟大思想的浅浅的理解,希望随着经验的增加能在多年后的某个日子能够重拾此篇文章进行更改。
一:那么-->到底什么是OO思想呢?
在面对对象的思想中,任何事物都可以被看做一个对象.
例如:我们可以把地球可以看做一个相当复杂的对象。地球上的山河胡海、动物、植物、水、土壤等等等都是对象。它们彼此之间互相联系、组合,最终又形成了地球这个超级复杂的对象。但是对于每个对象,最终抽象起来都可以分为两个要素:属性和行为。
在面对对象编程中,程序员首先面对的不再是一个个像C语言中的那些包含一个又一个变量的函数,而是要像搞改革开放要求的精神一样-----要放眼大局,想到一个事物就要想到它是由其自身所包含属性和应有的行为组成的------封装的概念就是这么出生的。(当然、这点是很chedan
滴、需要我们慢慢顿悟。。。)
二:OO思想的精华
1. 抽象
抽象的过程是对具体问题进行概括的过程,是对一类公共问题进行统一描述的过程。
对象的共性的抽象的描述----类的概念也就这么出现了,因为抽象的实现就是通过类来实现的 。。。。例如:一个班级里边有很多同学,有男有女,这些男男女女都有不同的学号、面孔、全校名次等等,于是乎我们习惯了定义一个包含了上述这些属性的类。此外,抽象也因对象都具有属性和行为,所以可以分为数据抽象和代码抽象
Egg:
一个时钟类
class Clock{
public:
int hour,minute,second; //******数据抽象
private:
showtime();
//******代码抽象
};
2. 封装
封装是面向对象思想描述的基础,封装意味着把对象相对应的的属性和行为结合成一个独立的系统单位,将一个对象的数据抽象和代码抽象整合在一块,为了增强代码的安全性和简化编程,所以需要对使用者尽可能隐藏对象的内部具体的实现细节,使用者需要通过接口,以特定的访问权限来使用类的成员。
3. 继承
龙生龙,凤生凤,老鼠儿子会打洞。。。。。这在生物学上叫“遗传”
但是呢不同的小老鼠打洞的动作却又和他爹有点不一样,有的打洞时喜欢唱歌、有的喜欢吹口哨。如果这里把小老鼠和它爹当成两个对象,把打洞看成老鼠这个类的固有特性,那么小老鼠的这种打洞行为的传承-我们就免费赠送它一个美丽的名字---[继承]
每个对象与对象之间都是有联系,这句话像极了那句p话“我们都是一家人,hhhh”,但是不管你是否苟同,他确实是对的。子类对象拥有与其基类相同的全部属性和方法,方法的具体实现不同。
这个事实上最容易理解:例如人都共有的一些属性:鼻子、眼睛、嘴巴……和一些方法:吃饭、睡觉、*&*&……
可以由此基础上再整出亚洲人、欧洲人、非洲人……
最后,我创造亚洲美女翠花……
4. 多态
多态是指在基类中定义的属性和行为被子类继承后,可以具有不同的数据类型或者表现行为等特性。
加入动物是一个基类,它的子类有小狗、小猫、小鱼……
那么作为动物呢,都有呼吸这一行为,但是这些子类继承下来后会根据自己的特性采取不同个性的呼吸方式,比如小狗小猫通过口腔和鼻腔,小鱼通过鳃云云。。。。
好了 ,暂时能整出来的就这些吧,后续再动刀。。。。
自勉:一步一个脚印!!
相关文章推荐
- Windows Server 2008 R2 的操作主控
- Sublime Text3常用快捷键
- 第一篇博客
- 嵌入式bootloader开发之十一-------裸机程序LED开发(Tiny 6410)
- java继承 子类重写父类方法
- 编译openfire3.8.2源码
- Web安全之XSS
- HDU1030 DFS&&规律
- poj3750 大大水题 双向循环链表
- 整数版计算器
- cocos2dx CallfuncN方法使用
- STM8l 15x系列固件库及帮助文件下载地址
- STM8l 15x系列固件库及帮助文件下载地址
- 简单类的继承(二)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二十三)
- 汇编/C/C++/MFC/JAVA/C# 进阶群103197177
- 人总是会变的
- 一个面试题:翻转句子中单词的顺序
- SDL在pc上的安装与移植
- Brief Intro to Object Subscripting of Foundation Framework