为什么对象如此重要----C++学习笔记之一
2012-10-20 16:46
489 查看
对于面向对象的程序设计方法,首先要建立对象的概念:
1、万物皆为对象。对象可以被认为是一个奇特的变量,他能存放数据,并且可以对他提出请求,要求他执行自身的运算。
2、程序就是一组对象,对象之间相互通过发送消息互相通知做什么。更具体的讲可以将消息看做对于某个对象的某个特定方法。
3、每个对象都有他自己的由其他对象构成的存储区。这样就可以通过已经存在的对象来构造新的对象,因此程序员可以构造出复杂的程序,而且可以将复杂性隐藏在对象的简明性之后。
4、每个对象都有一个类型。采用OOP术语,每个对象都是某个类的一个实例。
5、一个特定类型的所有对象都可以接收相同的消息。子类能够继承父类的所有方法,这是OOP的强大思想之一。
C++的特性一:实现的隐藏
程序员分为两类:1、类开发者,2、应用开发者。类开发者的目标是创建类,这个类只暴露给应用开发者必须要知道的东西,其他的信息都隐藏起来。因为如果应用开发者不需要,就没有必要暴露,被隐藏的通常是类的内部管理功能,容易受到物质的应用开发者的损害,所以隐藏可以减少程序的错误,隐藏的概念怎么强调都不过分。隐藏的另外一个好处就是:你可以改变一个类的内部实现,而不必担心这样做会影响应用程序的功能。C++中使用了明确的关键字来设置类的边界:public,private,protected。
C++的特性二:实现的重用
代码重用是面向对象的程序语言最大的优点之一,但是重用性并不是想所希望的那样容易达成,产生一个好的设计需要经验和洞察力。重用一个类最简单的方法就是直接使用这个类的对象,或者将这个类的对象放到新的类当中。
组合具有很大的灵活性。因为继承在面向对象的程序设计中很重要,所以它通常得到高度的重视,并且新的程序员在任何地方都想到继承的方法,这会造成笨拙的复杂设计。实际上,当创建新类的时候,程序员应该首先考虑组合,因为它更简单,更灵活。采用组合的方法,设计将变得清晰,而且一旦我们掌握了组合的经验之后,就明显的知道什么时候应该采用继承。
C++特性之三:重用接口
对象本身是一个很方便的工具,当我们克服了很多困难创建了一个类,在之后需要创建一个具有类似功能的类的时候我们就可以选取已存在的类,克隆它,然后再修改,则是再好不过的事情。实际上,使用面向对象的设计,人们的困难之一在于从开始到结束过于简单,一个习惯于寻找复杂解的训练有素的大脑,往往会被问题的简单性所难住。当我们从已经存在的类继承的时候,我们就创建了一个新的类型,这个类型包含所有被继承类的属性和方法。
C++特性之四:接口的重载
虽然继承可以继承基类的所有属性以及方法,但是派生类还是有一些区别于基类的属性,C++中提供改变基类函数方法的行为,“重载”,从而使派生类具有不同行为属性。当然添加属性的方法可以使重载,也可以是直接定义新的函数接口。
C++特性之五:多态性
首先来定义两个概念:“早捆绑”和“晚捆绑”。早捆绑指编译器会对特定的函数名产生的调用,而连接器会将这个调用解析为所执行代码的绝对地址。晚捆绑是指当给对象类型发送消息时,编译器保证这个函数调用的存在,并执行函数参数和返回值得类型检查,但是他并不知道执行的确切代码。在C++中我们可以用virtual关键字来声明某个函数具有晚捆绑的灵活性,其可以表示出相同家族中的类具有不同的行为。
C++特性之六:对象的创建和销毁
C++中把效率控制作为首要原则,可以通过静态或者动态的创建对象
1、万物皆为对象。对象可以被认为是一个奇特的变量,他能存放数据,并且可以对他提出请求,要求他执行自身的运算。
2、程序就是一组对象,对象之间相互通过发送消息互相通知做什么。更具体的讲可以将消息看做对于某个对象的某个特定方法。
3、每个对象都有他自己的由其他对象构成的存储区。这样就可以通过已经存在的对象来构造新的对象,因此程序员可以构造出复杂的程序,而且可以将复杂性隐藏在对象的简明性之后。
4、每个对象都有一个类型。采用OOP术语,每个对象都是某个类的一个实例。
5、一个特定类型的所有对象都可以接收相同的消息。子类能够继承父类的所有方法,这是OOP的强大思想之一。
C++的特性一:实现的隐藏
程序员分为两类:1、类开发者,2、应用开发者。类开发者的目标是创建类,这个类只暴露给应用开发者必须要知道的东西,其他的信息都隐藏起来。因为如果应用开发者不需要,就没有必要暴露,被隐藏的通常是类的内部管理功能,容易受到物质的应用开发者的损害,所以隐藏可以减少程序的错误,隐藏的概念怎么强调都不过分。隐藏的另外一个好处就是:你可以改变一个类的内部实现,而不必担心这样做会影响应用程序的功能。C++中使用了明确的关键字来设置类的边界:public,private,protected。
C++的特性二:实现的重用
代码重用是面向对象的程序语言最大的优点之一,但是重用性并不是想所希望的那样容易达成,产生一个好的设计需要经验和洞察力。重用一个类最简单的方法就是直接使用这个类的对象,或者将这个类的对象放到新的类当中。
组合具有很大的灵活性。因为继承在面向对象的程序设计中很重要,所以它通常得到高度的重视,并且新的程序员在任何地方都想到继承的方法,这会造成笨拙的复杂设计。实际上,当创建新类的时候,程序员应该首先考虑组合,因为它更简单,更灵活。采用组合的方法,设计将变得清晰,而且一旦我们掌握了组合的经验之后,就明显的知道什么时候应该采用继承。
C++特性之三:重用接口
对象本身是一个很方便的工具,当我们克服了很多困难创建了一个类,在之后需要创建一个具有类似功能的类的时候我们就可以选取已存在的类,克隆它,然后再修改,则是再好不过的事情。实际上,使用面向对象的设计,人们的困难之一在于从开始到结束过于简单,一个习惯于寻找复杂解的训练有素的大脑,往往会被问题的简单性所难住。当我们从已经存在的类继承的时候,我们就创建了一个新的类型,这个类型包含所有被继承类的属性和方法。
C++特性之四:接口的重载
虽然继承可以继承基类的所有属性以及方法,但是派生类还是有一些区别于基类的属性,C++中提供改变基类函数方法的行为,“重载”,从而使派生类具有不同行为属性。当然添加属性的方法可以使重载,也可以是直接定义新的函数接口。
C++特性之五:多态性
首先来定义两个概念:“早捆绑”和“晚捆绑”。早捆绑指编译器会对特定的函数名产生的调用,而连接器会将这个调用解析为所执行代码的绝对地址。晚捆绑是指当给对象类型发送消息时,编译器保证这个函数调用的存在,并执行函数参数和返回值得类型检查,但是他并不知道执行的确切代码。在C++中我们可以用virtual关键字来声明某个函数具有晚捆绑的灵活性,其可以表示出相同家族中的类具有不同的行为。
C++特性之六:对象的创建和销毁
C++中把效率控制作为首要原则,可以通过静态或者动态的创建对象
相关文章推荐
- 学习笔记之深入浅出MFC 第8章 C++重要特性---类与对象大解剖(虚拟函数的实现方式)
- 静下心来,想想为什么领域模型对于架构师如此重要?(学习笔记)
- 韩顺平 javascript教学视频_学习笔记28_dom对象(document对象) 最重要的
- C++学习笔记 _________________________面向对象部分 类 封装 - 01
- C++函数对象学习笔记
- C++ 学习笔记(14)重载运算与类型转换、函数对象、function库
- 《面向对象基础:C++实现》学习笔记之五
- C++学习笔记 面向对象程序设计
- C++ 中的成员对象(学习笔记)
- 【C++】 string学习笔记1——定义和初始化string对象
- C++ 对象模型 学习笔记(2)
- Geekband_C++面向对象高级编程_第三周学习笔记
- C++学习笔记1--类和对象
- 学习笔记之C++为什么将函数声明或者类的定义放在.h文件中,而将其实现放在原文件中
- C++PrimerPlus第十章学习笔记——对象和类
- VS2010 C++ 学习笔记(三) 类和对象 访问限定符 String
- 【菜鸟C++学习笔记】23. 对象的传递机制
- C++中的vector容器对象学习笔记
- C++之面向对象学习笔记01
- C++ Primer Plus学习笔记之STL函数对象