@@ -197,24 +197,26 @@ FAQ. 阅读其他主题XPath、xslt、DOM、Java与xml等
197
197
198
198
## 再谈对象
199
199
### 问题空间与解空间
200
- 程序员必须建立起在机器模型(位于“解空间”内,这是你对问题建模的地方,例如计算机)和实际待解问题的模型(位于“问题空间”内,
201
- 这是问题存在的地方,例如一项业务)之间的关联。
202
- 面向对象方式将问题空间中的元素及其在解空间中的表示称为“对象”。这种思想的实质是:程序可以通过添加新类型的对象使自身适用与
203
- 某个特定问题。这是一种更灵活更强有力的语言抽象。
204
- OOP中,用class关键字表示数据类型 ;类描述了具有相同特性(数据元素)和行为(功能)的对象集合,一个类实际上就是一个数据类型。
200
+ 程序员必须建立起在机器模型(位于“解空间”内,这是你对问题建模的地方,例如计算机)和实际待解问题的模型(位于“问题空间”内
201
+ 这是问题存在的地方,例如一项业务)之间的关联。
202
+ 面向对象方式将问题空间中的元素及其在解空间中的表示称为“对象”。这种思想的实质是:程序可以通过添加新类型的对象使自身适用与
203
+ 某个特定问题。这是一种更灵活更强有力的语言抽象。
204
+ OOP中,用class表示数据类型 ;类描述了具有相同特性(数据元素)和行为(功能)的对象集合,一个类实际上就是一个数据类型。
205
205
[ JAVA编程思想(第四版)ch01-对象导论] ( https://pan.baidu.com/s/1vbHMb3XRXato-jFv34HeQQ " 验证码:p4th ")
206
206
### 面向对象特性
207
207
***多态的本质***
208
- 前期绑定:编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要被执行的代码的绝对地址。OOP中,程序直到运行时
209
- 才能确定代码地址 。当消息发送到一个泛化对象时,使用了后期绑定,编译器确保被调用方法的存在,并对调用参数和返回值致性类型检
210
- 查 (无法提供此类保证的语言被称为是弱类型的),但是并不知道将要执行的确切代码。Java的动态绑定是默认行为(C++通过virtual
211
- 关键字明确声明某个方法后期绑定 )不需要额外关键字实现多态。
208
+ 前期绑定:编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要被执行的代码的绝对地址。
209
+ OOP中,程序直到运行时才能确定代码地址 。当消息发送到一个泛化对象时,使用了后期绑定,编译器确保被调用方法的存在,并对
210
+ 调用参数和返回值致性类型检查 (无法提供此类保证的语言被称为是弱类型的),但是并不知道将要执行的确切代码。
211
+ Java的动态绑定是默认行为(C++通过virtual关键字明确声明某个方法后期绑定 )不需要额外关键字实现多态。
212
212
多态的作用是消除类型之间的耦合关系。多态通过分离做什么和怎么做,从另一个角度实现接口和实现分离(FAQ. 查阅OOP三大特
213
213
性(ch08-多态))。
214
+
214
215
“封装”通过合并特征和行为来创建新的数据类型。
215
216
继承允许将对象视为它自己本身的类型或其基类型来加以处理。这种能力极为重要,因为它允许将多种类型(从同一基类导出的)视为
216
217
同一类型,而同一份代码也就可以毫无差别地运行在这些不同类型之上了。
217
218
多态方法调用根据方法行为的不同来表现类型之间的差别,尽管它们都可以通过同一个基类来调用。
219
+
218
220
FAQ. 方法重载:what(表现形式)?why(为什么要重载方法)?who(怎么设计重载方法,如何查找到正确的方法来调用)?
219
221
220
222
## 类型信息
0 commit comments