网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 面向对象编程导论(原书第3版)/软件工程技术丛书
分类
作者 (美国)巴德著//黄明军等译
出版社 机械工业出版社
下载
简介
编辑推荐

本书是经典面向对象技术教材的最新版,原版已被哥伦比亚大学、佛罗里达大学、南非大学、罗马大学等众多世界名校用做教材。书中通过对象、方法、继承(包括多重继承)和多态等概念,以独立于编程语言的方式介绍了面向对象的原理。书中所列举的实例涉及多种编程语言,其中包括Java、C++、C#、Delphi、Python、CLOS、Eiffel、Objective-C、Smalltalk等。通过研究这些编程语言,读者可以更好地理解隐藏在各种语言语法之后的基本原理。

内容推荐

本书通过对象、方法、继承(包括多重继承)和多态等概念,以独立于编程语言的方式介绍了面向对象编程的原理。书中所列举的实例涉及多种编程语言,其中包括Java、C++、C#、Delphi、Python、CL0S、Eiffel、0bjective-C、Smalhalk等。通过研究这些编程语言,读者可以更好地理解隐藏在各种语言语法之后的基本原理。此外,作者还从面向对象的角度对这些语言进行了分析比较。

本书内容全面,特别适合作为计算机专业本科高年级和研究生一年级的教材,同时也可以供那些从传统的面向过程编程转向面向对象编程、想要了解面向对象基本概念的初学者使用。

目录

译者序

前言

第1章 面向对象思想

1.1为什么00P这么流行

1.2语言和思维

1.2.1爱斯基摩人和雪

1.2.2关于计算机语言的一个例子

1.2.3丘奇猜想和沃夫假说

1.3一个新的范例

1.4一种观察世界的方式

1.4.1代理和团体

1.4.2消息和方法

1.4.3责任

1.4.4类和实例

1.4.5类的层次——继承

1.4.6方法绑定与改写

1.4.7面向对象概念总结

1.5模拟计算

1.5.1隐喻的力量

1.5.2避免无限回归

1.6一段简史

小结

进一步阅读材料

自学提问

练习

第2章 抽象

2.1抽象层次

2.2抽象的其他形式

2.2.1部分分化

2.2.2封装和互换性

2.2.3接口和实现

2.2.4服务视角

2.2.5复合法

2.2.6特化分层

2.2.7模式

2.3抽象机制的发展简史

2.3.1汇编语言

2.3.2过程

2.3.3模块

2.3.4抽象数据类型

2.3.5以服务为中心的观点

2.3.6消息、继承和多态

小结

进一步阅读材料

自学提问

练习

第3章 面向对象设计

3.1责任意味着无干扰

3.2小项目编程与大项目编程

3.3为什么从行为开始

3.4一个RDD实例

3.4.1交互式智能厨房助手

3.4.2通过场景工作

3.4.3组件的标识

3.5CRC卡——记录责任

3.5.1给组件一个物理表示

3.5.2“什么,谁”循环

3.5.3文档

3.6组件和行为

3.6.1延迟决定

3.6.2为变化做准备

3.6.3继续场景

3.6.4交互图表

3.7软件组件

3.7.1行为和状态

3.7.2实例和类

3.7.3耦合性和内聚性

3.7.4接口和实现——Pamas原则

3.8形式化接口

3.9设计表现

3.10实现组件

3.11组件集成

3.12维护和升级

小结

进一步阅读材料

自学提问

练习

第4章 类和方法

4.1封装

4.2类定义

4.2.1C++、Java和C#语言

4.2.2Apple0bjectPascal和DelphiPascal

语言

4.2.3Smalltalk语言

4.2.4其他语言

4.3方法

4.3.1类中方法的声明次序

4.3.2常量或不可变数据字段

4.3.3定义和实现的分离

4.4关于类主题的变化

4.4.1Oberon语言中不属于类的方法

4.4.2接口

4.4.3属性

4.4.4向前定义

4.4.5内部类(或嵌套类)

4.4.6类的数据字段

4.4.7作为对象的类

小结

进一步阅读材料

自学提问

练习

第5章 消息、实例和初始化

5.1消息传递语法

5.2静态类型语言和动态类型语言

5.3从方法内部存取接收器

5.4对象的创建

5.5指针和内存分配

5.6构造函数

5.6.1正统规范的类形式

5.6.2常数值

5.7析构函数和终止器

5.8Smalhalk语言中的元类

小结

进一步阅读材料

自学提问

练习

第6章 案例研究:八皇后问题

6.1八皇后问题

6.2使用生成器

6.2.1初始化

6.2.2找到解决方案

6.2.3前进到下一位置

6.3用几种语言实现八皇后问题

6.3.1用0bjectPascal语言实现八皇后

问题

6.3.2用c++语言实现八皇后问题

6.3.3用Java语言实现八皇后问题

6.3.4用Objective-C语言实现八皇后

问题

6.3.5用Smalltalk语言实现八皇后问题

6.3.6用Ruby语言实现八皇后问题

小结

进一步阅读材料

自学提问

练习

第7章 案例研究:台球游戏

7.1台球元素

7.2图形对象

7.2.1桌壁图形对象

7.2.2洞口图形对象

7.2.3球图形对象

7.3主程序

7.4使用继承

小结

讲一步阅读材料

自学提问

练习

第8章 继承与替换

8.1关于继承的直观描述

8.1.1“是一个”检验

8.1.2使用继承的原因

8.2不同语言中的继承

8.3子类、子类型和替换

8.4改写和虚拟方法

8.5接口和抽象类

8.6继承的形式

8.6.1特化子类化(子类型化)

8.6.2规范子类化

8.6.3构造子类化

8.6.4泛化子类化

8.6.5扩展子类化

8.6.6限制子类化

8.6.7变体子类化

8.6.8结合子类化

8.6.9各种继承形式小结

8.7关于继承的变体

8.7.1Java语言中的匿名类

8.7.2继承和构造函数

8.7.3虚拟析构函数

8.8继承的优点

8.8.1软件可复用性

8.8.2代码共享

8.8.3接口的一致性

8.8.4软件组件

8.8.5快速原型法

8.8.6多态和框架

8.8.7信息隐藏

8.9继承的代价

8.9.1程序执行速度

8.9.2程序大小

8.9.3消息传递的开销

8.9.4程序复杂性

小结

进一步阅读材料

自学提问

练习

第9章 案例研究:纸牌游戏

9.1P1ayingCard类

9.2数据类和视图类

9.3游戏

9.4牌堆——使用继承

9.4.1缺省牌堆

9.4.2花色堆

9.4.3待用堆

9.4.4丢弃堆

9.4.5桌面堆

9.5多种形式的游戏

9.6图形用户界面

小结

进一步阅读材料

自学提问

练习

第10章 子类和子类型

10.1可替换性

10.2子类型

10.3可替换性悖论

10.4构造子类化

10.5动态类型语言

10.6前置条件和后置条件

10.7改进语义

小结

进一步阅读材料

自学提问

练习

第11章 静态行为和动态行为

11.1静态类型化和动态类型化

11.2静态类和动态类

11.2.1运行时类型决定

11.2.2向下造型(反多态)

11.2.3非语言支持的运行时测试

11.2.4检验是否理解消息

11.3静态方法绑定和动态方法绑定

小结

进一步阅读材料

自学提问

练习

第12章 替换的本质

12.1内存布局

12.1.1最小静态空间分配

12.1.2最大静态空间分配

12.1.3动态内存分配

12.2赋值

12.3复制和克隆

12.3.1Smalltalk语言和0bjectivo-C语言中

的复制

12.3.2c++语言中的拷贝构造函数

12.3.3Java语言中的克隆

12.4相同

12.4.1相同和同一

12.4.2相同检验的悖论

小结

进一步阅读材料

自学提问

练习

第13章 多重继承

13.1分类化继承

13.2多重继承带来的问题

13.2.1名称歧义

13.2.2对替换的影响

13.2.3Eiffel语言中的重定义

13.2.4CIDS语言的类排序解决方案

13.3接口的多重继承

13.4继承于公共祖先

13.5内部类

小结

进一步阅读材料

自学提问

练习

第14章 多态及软件复用

14.1编程语言中的多态

14.2软件复用机制

14.2.1使用组合

14.2.2使用继承

14.2.3组合和继承的比较

14.3效率和多态

14.4软件复用的普及会变成现实吗

小结

进一步阅读材料

自学提问

练习

第15章 重载

15.1类型签名和范畴

15.2基于范畴的重载

15.3基于类型签名的重载

15.4重定义

15.5多价

15.6多方法

小结

进一步阅读材料

自学提问

练习

第16章 改写

16.1标识改写

16.2代替与改进

16.2.1Smalltalk语言中的代替

16.2.2Beta语言中的改进

16.2.3改进与子类/子类型之间的差异

16.2.4cIDS语言中的封装

16.3延迟方法

16.4改写与遮蔽

16.5协方差与反协方差

16.6改写的变体

16.6.1Java语言中的final方法

16.6.2C#语言中的版本化

小结

进一步阅读材料

自学提问

练习

第17章 多态变量

17.1简单多态变量

17.2接收器变量

17.2.1多态变量在框架中的作用

17.2.2Smalltalk语言中的端点比较

17.2.3self和super

17.3向下造型

17.4纯多态

小结

进一步阅读材料

自学提问

练习

第18章 泛型

18.1模板函数

18.2模板类

18.3模板参数中的继承

18.4案例研究:结合分离的类

小结

进一步阅读材料

自学提问

练习

第19章 容器类

19.1动态类型语言中的容器

19.2静态类型语言中的容器

19.2.1类型化和复用之间的关系

19.2.2替换和向下造型

19.2.3使用替换和改写

19.2.4参数化类

19.3限制元素类型

19.4元素遍历

19.4.1迭代器循环

19.4.2访问器方法

小结

进一步阅读材料

自学提问

练习

第20章 案例研究:标准模板库

20.1迭代器

20.2函数对象

20.3样例程序——库存系统

20.4样例程序——图表

20.4.1最短路径算法

20.4.2开发数据结构

20.5词汇索引

20.600P的未来

小结

进一步阅读材料

自学提问

练习

第21章 框架

21.1复用和特化

21.1.1高级抽象和低级抽象

21.1.2倒置库

21.2样例框架

21.2.1JlavaAppletAPI

21.2.2模拟框架

21.2.3事件驱动的模拟框架

小结

进一步阅读材料

自学提问

练习

第22章 框架实例:AWT和Swing

22.1AWT的类继承层次

22.2布局管理器

22.3监听器

22.4用户界面组件

22.5案例研究:颜色显示

22.6Swing组件库

22.6.1导入库

22.6.2不同的组件

22.6.3不同的绘制协议

22.6.4为窗口增加组件

小结

进一步阅读材料

自学提问

练习

第23章 对象互连

23.1耦合和内聚

23.1.1耦合的种类

23.1.2内聚的种类

23.1.3德墨特尔法则

23.1.4类级别可视性与对象级别

可视性

23.1.5活动值

23.2子类客户和用户客户

23.3存取控制和可视性

23.3.1Smalltalk语言中的可视性

23.3.20biect:Pascal语言中的可视性

23.3.3C++语言中的可视性

23.3.4Java语言中的可视性

23.3.50bjective—c语言中的可视性

23.4有意依赖性

小结

进一步阅读材料

自学提问

练习

第24章 设计模式

24.1控制信息流

24.2描述模式

24.3迭代器

24.4软件工厂

24.5策略

24.6单件

24.7组合

24.8装饰器

24.9双调度模式

24.10享元

24.11代理

24.12外观

24.13观察者

小结

进一步阅读材料

自学提问

练习

第25章 反射和内省

25.1理解机制

25.1.1类对象

25.1.2字符串形式的类名称

25.1.3检测对象类

25.1.4通过类建立实例

25.1.5检测对象是否理解消息

25.1.6类行为

25.2作为对象的方法

25.3修改机制

25.3.1Smalltalk语言中的方法编辑

25.3.2Java语言中的动态类加载

25.4元类

小结

进一步阅读材料

自学提问

第26章 分布式对象

26.1地址、端口和套接字

26.2一个简单的客户/服务器程序

26.3多客户端

26.4通过网络传输对象

26.5更复杂的技术

小结

进一步阅读材料

自学提问

练习

第27章 实现

27.1编译器和解释器

27.2作为参数的接收器

27.3继承方法

27.3.1多重继承的问题

27.3.2裁剪问题

27.4改写方法

27.5名称编码

27.6分派表

27.7字节码解释器

27.8即时编译

小结

进一步阅读材料

自学提问

练习

附录A 八皇后问题的源代码

附录B 台球游戏的源代码

附录C 纸牌游戏的源代码

术语表

参考文献

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/2/23 0:05:04