当前位置:首页 > 工业技术
面向对象编程C++和Java比较教程 中文版

面向对象编程C++和Java比较教程 中文版PDF格式文档图书下载

工业技术

  • 购买点数:22
  • 作 者:(美)Avinash C. Kak著 徐波译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2004
  • ISBN:7115122776
  • 标注页数:801 页
  • PDF页数:817 页
图书介绍:C++和Java是目前两种主流的面向对象编程语言。本书从基本结构到如何用于应用层次的编程,对这两种语言进行比较和对照,具有重要的学术价值和现实意义。

查看更多关于面向对象编程C++和Java比较教程 中文版的内容

图书介绍

第1章 大处着眼——OO编程的一些共性 1

1.1 什么是面向对象编程 1

1.2 OO有什么优点 1

1.3 如何精通OO 2

第2章 初窥门径 3

2.1 简单程序:对一个整型数组求和 3

2.2 简单程序:终端I/O 8

2.3 简单程序:文件I/O 12

2.4 更多阅读推荐 16

2.5 作业 16

第3章 类及其他一些关键的概念 18

3.1 在C++中定义类 20

3.2 在Java中定义类 23

3.3 创建对象:C++和Java的异同 25

3.4 在C++中定义子类 26

3.5 在Java中定义子类 29

3.6 阻断继承 32

3.7 创建对象的打印表示形式 34

3.8 对象的销毁 35

3.9 Java的程序包(Package) 36

3.10 C++的名字空间(namespace) 40

3.10.1 using声明和using指令 42

3.10.2 哪个名字空间拥有从其他名字空间中引入的名字 43

3.10.3 using声明和using指令的作用域 44

3.10.4 嵌套名字空间和名字空间别名 45

3.10.5 无名名字空间 46

3.10.6 Koenig不带限定名称的函数名查找 46

3.11 类成员的访问控制 47

3.12 抽象类和接口 49

3.13 对象的比较 51

3.14 类的静态成员 54

3.15 模板类 55

3.16 嵌套类型 56

3.16.1 C++的嵌套类 56

3.16.2 Java的嵌套类 60

3.17 在C程序中实现OO行为 64

3.18 更多阅读推荐 70

3.19 作业 70

第4章 字符串 73

4.1 C的字符串:简单回顾 73

4.2 C风格字符串的一些弱点 75

4.3 C++的字符串 76

4.3.1 创建C++字符串对象 77

4.3.2 访问单个字符 77

4.3.3 字符串比较 78

4.3.4 连接字符串 80

4.3.5 查找子字符串和字符 81

4.3.6 提取子字符串 83

4.3.7 删除和插入子字符串 83

4.3.8 长度和容量 84

4.3.9 其他字符串函数 87

4.4 Java的字符串 88

4.4.1 创建String和StringBuffer对象 89

4.4.2 访问单独的字符 91

4.4.3 字符串的比较 92

4.4.4 连接字符串 94

4.4.5 查找和替换 95

4.4.6 删除和插入子字符串 96

4.4.7 提取子字符串 96

4.5 更多阅读推荐 97

4.6 作业 97

第5章 使用容器类 100

5.1 C++的容器类 101

5.1.1 Vector 103

5.1.2 Deque 114

5.1.3 List 116

5.1.4 Stack 118

5.1.5 Queue 119

5.1.6 Priority_Queue 120

5.1.7 Map 121

5.1.8 Set 123

5.1.9 泛型算法 124

5.2 Java的容器 124

5.2.1 List 126

5.2.2 Set 129

5.2.3 Map 130

5.2.4 Vector 133

5.2.5 Java容器的算法 135

5.3 参考资料和更多阅读推荐 137

5.4 作业 138

第6章 基本类型及其输入/输出 144

6.1 标记、标识符和变量名 144

6.2 C++和Java的基本类型 145

6.3 布尔类型 145

6.4 字符类型 146

6.5 整数类型 150

6.6 浮点类型 151

6.7 基本类型的类型转换 152

6.7.1 C++的隐式类型转换 152

6.7.2 Java的隐性类型转换 155

6.7.3 C++的显式类型转换 158

6.7.4 Java的显式类型转换 159

6.8 C++的I/O流 161

6.8.1 C++的流层次体系 161

6.8.2 字符流的输入输出操作 162

6.8.3 字节流的输入输出操作 167

6.8.4 控制格式 171

6.8.5 字符串流 174

6.9 Java的I/O流 175

6.9.1 基本类型的写入 177

6.9.2 字符串的写入 181

6.9.3 基本类型的读取 184

6.9.4 字符串的读取 185

6.10 更多阅读推荐 186

6.11 作业 186

第7章 声明、定义和初始化 191

7.1 什么时候声明同时也是定义 191

7.2 C++的变量在定义时是否同时进行了缺省初始化 193

7.2.1 如果不提供无参构造函数会出现什么情况 195

7.2.2 const和引用成员的特殊情况 197

7.3 在Java中变量在定义时会不会进行缺省的初始化 198

7.3.1 缺省初始化是否受类成员的缺省值影响 200

7.3.2 如果构造函数为一个类成员指定了一个值,那么它的缺省值是否忽略 200

7.4 在C++中声明指针类型 201

7.5 C++的指针数组 203

7.6 声明多个名字 204

7.7 C++标识符的作用域 205

7.8 Java标识符的作用域 206

7.9 C++的数组及其初始化 207

7.10 Java的数组及其初始化 210

7.10.1 Java数组是个对象 212

7.10.2 实现排序、查找等功能的java.lang.Arrays类 213

7.11 符号常量 214

7.12 C++的宏 215

7.13 C++的枚举类型 216

7.14 参考资料和更多阅读推荐 219

7.15 作业 219

第8章 对象引用和内存分配 222

8.1 C++的对象引用 222

8.2 Java的对象引用 224

8.3 C++的内存分配 224

8.4 Java的内存分配 225

8.5 C++的结构 226

8.6 作业 228

第9章 函数和方法 232

9.1 函数声明 232

9.2 C++的参数传递 232

9.2.1 按照传值方式传递一个基本类型的参数 233

9.2.2 按照传指针模式传递一个基本类型的参数 233

9.2.3 按照传引用模式传递一个基本类型的参数 234

9.2.4 按照传值模式传递一个类类型的参数 235

9.2.5 按照传指针模式传递一个类类型的参数 236

9.2.6 按照传引用模式传递一个类类型的参数 237

9.3 Java的参数传递 238

9.3.1 按照传值模式传递一个基本类型的参数 238

9.3.2 按照传递对象引用模式传递一个类类型的参数 238

9.4 返回引用类型的C++函数 241

9.5 C++的内联函数 243

9.6 C++的静态变量 244

9.7 C++函数的const参数和const返回类型 245

9.8 Java方法的final形参 247

9.9 数组参数 247

9.10 C++的函数重载解析 248

9.11 Java的函数重载解析 251

9.12 C++函数的缺省参数 252

9.13 C++的函数指针 253

9.14 更多阅读推荐 255

9.15 作业 255

第10章 异常处理 260

10.1 C用于多层返回的setjmp/longjmp机制 260

10.2 C++的异常处理 263

10.3 C++异常处理的一些用法模式 264

10.4 C++和Java的异常处理的区别 270

10.5 Java的异常处理语法 271

10.6 Java异常处理的一些用法模式 272

10.7 Java的checked和unchecked异常 277

10.8 更多阅读推荐 278

10.9 作业 278

第11章 类:剩余的故事 281

11.1 构造函数的访问控制 281

11.1.1 限制对象数量 281

11.1.2 限制对C++无参构造函数的访问 283

11.2 多个构造函数可否互相调用 285

11.3 C++的静态成员 285

11.4 Java的静态成员 291

11.5 C++的const成员函数 295

11.6 C++的自身引用 295

11.7 Java的自身引用 298

11.8 C++的析构函数 299

11.9 Java的对象销毁 303

11.10 C++的拷贝构造函数和拷贝赋值操作符 306

11.11 Java的赋值操作符的语义 310

11.12 Java的对象克隆 311

11.13 C++的指向类成员的指针 316

11.14 交叉类(Interleaved Class) 318

11.15 C++研究:一个具有适度复杂性的交叉类 319

11.16 Java研究:一个具有适度复杂性的交叉类 329

11.17 更多阅读推荐 335

11.18 作业 335

第12章 C++的操作符重载 343

12.1 操作符标记和操作符函数 343

12.2 操作符的全局重载定义 344

12.3 操作符的成员函数重载定义 345

12.4 单目操作符的全局重载定义 347

12.5 单目操作符的成员函数重载定义 348

12.6 操作符重载的案例研究 349

12.7 灵巧指针(smart pointer):解引用操作符的重载 360

12.8 自增和自减操作符的重载 367

12.9 用户定义的转换 371

12.10 “()”操作符的重载 374

12.11 通过“<”操作符的重载对类类型的对象进行排序 376

12.12 参考资料和更多阅读推荐 379

12.13 作业 379

第13章 泛型和模板 381

13.1 C++的参数化类和函数 383

13.1.1 一个C++链表程序的实现 383

13.1.2 一个参数化的链表程序 386

13.1.3 模板特化 391

13.1.4 模板声明的通用语法 393

13.2 重温迭代器 395

13.2.1 泛型算法的迭代器类型 395

13.2.2 如何声明迭代器 396

13.3 Java的参数化类 397

13.3.1 在Java中创建自己的参数化类型 399

13.3.2 方法的参数化 403

13.3.3 限制参数 405

13.4 参考资料和更多阅读推荐 408

13.5 作业 408

第14章 OO编程的模型图 410

14.1 用例图 410

14.2 类图 412

14.2.1 类之间的关联关系 413

14.2.2 类之间的聚合和合成关系 414

14.2.3 表示属性 415

14.2.4 表示操作 415

14.2.5 类别模板(stereotype) 416

14.3 交互图 416

14.3.1 顺序图 417

14.3.2 协作图 421

14.4 包图 421

14.5 状态图 423

14.6 活动图 427

14.7 参考资料和更多阅读推荐 429

14.8 作业 429

第15章 类的扩展 431

15.1 C++子类的公共派生 431

15.2 C++派生类的构造函数 434

15.3 C++派生类的拷贝构造函数 436

15.4 C++派生类的拷贝赋值操作符 438

15.5 C++派生类的操作符重载 440

15.6 C++派生类的析构函数 443

15.7 C++的虚拟成员函数 448

15.7.1 虚拟函数声明的限制 452

15.7.2 多层类层次体系中的虚拟函数 452

15.7.3 操作符能否具有多态行为 454

15.7.4 多态类型 454

15.8 C++函数的静态绑定和动态绑定 455

15.9 C++函数覆盖的限制 458

15.10 C++的虚拟析构函数 461

15.11 C++构造函数的顺序依赖性 462

15.12 C++的抽象类 464

15.13 C++的保护和私有派生类 468

15.14 扩展Java类 472

15.15 Java方法覆盖的限制 475

15.16 Java构造函数的顺序依赖性 477

15.17 Java的抽象类 478

15.18 Java的接口 481

15.18.1 在Java中实现多个接口 485

15.18.2 在Java中扩展接口 485

15.18.3 接口中的常量 488

15.19 C++个案研究:一个具有适当复杂度的小型类层次体系 489

15.20 Java个案研究:一个具有适当复杂度的小型类层次体系 501

15.21 参考资料和更多阅读推荐 510

15.22 作业 510

第16章 C++的多重继承 515

16.1 MI的一些例子 515

16.2 重复继承可能导致的问题 520

16.3 多重继承的虚基类 522

16.4 虚基类和拷贝构造函数 527

16.5 虚基类和赋值操作符 530

16.6 避免成员函数的名字冲突 536

16.7 处理数据成员的名字冲突 538

16.8 一个重复继承例子的实现 540

16.9 使用混合(mixin)类 548

16.10 使用角色扮演类 555

16.11 C++的运行时类型确定 566

16.12 参考资料和更多阅读推荐 567

16.13 作业 567

第17章 图形用户界面OO编程 572

17.1 工具箱历史的简要介绍 573

17.2 AWT/Swing组件 574

17.3 Qt部件 575

17.4 GNOME/GTK+部件 575

17.5 最简单的AWT/Swing GUI程序 576

17.6 最简单的Qt GUI程序 579

17.7 最简单的GNOME/GTK+程序 582

17.8 GUI程序的布局管理器 585

17.9 AWT/Swing的布局管理器 585

17.9.1 Border Layout 586

17.9.2 Flow Layout 588

17.9.3 Box Layout 590

17.9.4 Grid Layout 593

17.9.5 Card Layout 596

17.9.6 Grid-Bag Layout 599

17.10 Qt的布局管理器 602

17.10.1 Box Layout 603

17.10.2 Grid Layout 605

17.11 GNOME/GTK+的布局管理器 608

17.11.1 Box Layout 608

17.11.2 Table Layout 609

17.12 GUI程序的事件处理 612

17.13 AWT/Swing的事件处理 614

17.14 Qt的事件处理 624

17.14.1 一个需要使用元对象编译的Qt例子 627

17.14.2 信号函数和slot函数的全面总结 634

17.15 GNOME/GTK+的事件处理 634

17.15.1 GNOME/GTK+中事件与其他部件的通信 636

17.15.2 GNOME/GTK+回调函数的全面总结 641

17.16 AWT/Swing中带菜单的窗口 643

17.17 Qt中带菜单的窗口 647

17.18 GNOME/GTK+中带菜单的窗口 653

17.19 在AWT/Swing中绘制形状、文本和图像 661

17.20 在Qt中绘制形状、文本和图像 673

17.21 在GNOME/GTK+中绘制形状、文本和图像 678

17.22 Java Applet 687

17.22.1 Applet的生命周期 688

17.22.2 Applet标签 688

17.22.3 一个Applet例子 690

17.22.4 双重用途的Applet编程 696

17.22.5 AppletContext接口 699

17.22.6 与Applet相关的安全问题 703

17.23 参考资料和更多阅读推荐 704

17.24 作业 704

第18章 面向对象多线程编程 707

18.1 在Java中创建和运行简单的线程 708

18.2 Java的Runnable接口 711

18.3 线程的状态 712

18.4 Java的线程冲突 713

18.5 Java的线程同步 719

18.6 Java用于处理死锁的等待-通知机制 722

18.7 Java线程之间的数据IO 726

18.8 Java Applet的线程 728

18.9 AWT/Swing的Event Dispatch线程 730

18.10 C/C++的多线程编程 737

18.10.1 用POSIX线程演示线程冲突 742

18.10.2 处理POSIX线程冲突的Mutex 744

18.10.3 POSIX线程:处理死锁的条件变量和等待-信号机制 746

18.11 C++的面向对象多线程编程 750

18.12 参考资料和更多阅读推荐 756

18.13 作业 756

第19章 网络编程 758

19.1 在Java中与现有服务器建立Socket连接 758

19.2 Java的服务器Socket 761

19.3 在C++中与现有服务器建立Socket连接 766

19.4 C++(Qt)的服务器Socket 771

19.5 更多阅读推荐 778

19.6 作业 779

第20章 数据库编程 780

20.1 关系数据库 780

20.2 MySQL数据库管理系统 781

20.3 SQL 783

20.4 JDBC编程:通过Java调用SQL 790

20.5 Mysql++编程:通过C++调用SQL 794

20.6 更多阅读推荐 799

20.7 作业 799

参考文献 800

查看更多关于面向对象编程C++和Java比较教程 中文版的内容

相关书籍
作者其它书籍
返回顶部