您好,欢迎光临有路网!
面向对象编程C++和Java比较教程
QQ咨询:

面向对象编程C++和Java比较教程

  • 作者:卡克
  • 出版社:人民邮电出版社
  • ISBN:9787115122773
  • 出版日期:2004年07月01日
  • 页数:801
  • 定价:¥76.00
  • 关注微信领礼券
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    • 出版社
    • ISBN
      9787115122773
    • 作者
    • 页数
      801
    • 出版时间
      2004年07月01日
    • 定价
      ¥76.00
    • 所属分类
    内容提要
    C++和Java是目前两种主流的面向对象编程语言。本书从基本结构到如何进行应用层次的编程,对这两种语言进行比较和对照,具有重要的学术价值和现实意义。 全书共20章,分别从基础概念和机制、基本语言要素、OO编程特性、专业编程应用等方面,介绍了C++和Java的精髓和区别。本书还有一个独特的学习方式,就是用C++重新编写一个特定的Java程序,实现相同的功能,或者反过来,用Java重写C++程序。这种方法能够培养学生更加灵活地处理那些比较困难的项目,无论是C++还是Java项目。每章*后的“更多阅读**”提供了丰富的可查询资料。 本书适合高等院校计算机专业用做面向对象程序设计课程的教材,对于熟悉C++和Java两种语言中的一种,而又想了解和掌握另一种语言的程序员也非常有帮助。
    目录
    第1章大处着眼—OO编程的一些共性 11.1什么是面向对象编程 11.2OO有什么优点 11.3如何精通OO 2第2章初窥门径 32.1简单程序:对一个整型数组求和 32.2简单程序:终端I/O 82.3简单程序:文件I/O 122.4更多阅读** 162.5作业 16第3章类及其他一些关键的概念 183.1在C++中定义类 203.2在Java中定义类 233.3创建对象:C++和Java的异同 253.4在C++中定义子类 263.5在Java中定义子类 293.6阻断继承 323.7创建对象的打印表示形式 343.8对象的销毁 353.9Java的程序包(Package) 363.10C++的名字空间(namespace) 403.10.1using声明和using指令 423.10.2哪个名字空间拥有从其他名字空间中引入的名字 433.10.3using声明和using指令的作用域 443.10.4嵌套名字空间和名字空间别名 453.10.5无名名字空间 463.10.6Koenig不带限定名称的函数名查找 463.11类成员的访问控制 473.12抽象类和接口 493.13对象的比较 513.14类的静态成员 543.15模板类 553.16嵌套类型 563.16.1C++的嵌套类 563.16.2Java的嵌套类 603.17在C程序中实现OO行为 643.18更多阅读** 703.19作业 70第4章字符串 734.1C的字符串:简单回顾 734.2C风格字符串的一些弱点 754.3C++的字符串 764.3.1创建C++字符串对象 774.3.2访问单个字符 774.3.3字符串比较 784.3.4连接字符串 804.3.5查找子字符串和字符 814.3.6提取子字符串 834.3.7删除和插入子字符串 834.3.8长度和容量 844.3.9其他字符串函数 874.4Java的字符串 884.4.1创建String和StringBuffer对象 894.4.2访问单独的字符 914.4.3字符串的比较 924.4.4连接字符串 944.4.5查找和替换 954.4.6删除和插入子字符串 964.4.7提取子字符串 964.5更多阅读** 974.6作业 97第5章使用容器类 1005.1C++的容器类 1015.1.1Vector 1035.1.2Deque 1145.1.3List 1165.1.4Stack 1185.1.5Queue 1195.1.6Priority_Queue 1205.1.7Map 1215.1.8Set 1235.1.9泛型算法 1245.2Java的容器 1245.2.1List 1265.2.2Set 1295.2.3Map 1305.2.4Vector 1335.2.5Java容器的算法 1355.3参考资料和更多阅读** 1375.4作业 138第6章基本类型及其输入/输出 1446.1标记.标识符和变量名 1446.2C++和Java的基本类型 1456.3布尔类型 1456.4字符类型 1466.5整数类型 1506.6浮点类型 1516.7基本类型的类型转换 1526.7.1C++的隐式类型转换 1526.7.2Java的隐性类型转换 1556.7.3C++的显式类型转换 1586.7.4Java的显式类型转换 1596.8C++的I/O流 1616.8.1C++的流层次体系 1616.8.2字符流的输入输出操作 1626.8.3字节流的输入输出操作 1676.8.4控制格式 1716.8.5字符串流 1746.9Java的I/O流 1756.9.1基本类型的写入 1776.9.2字符串的写入 1816.9.3基本类型的读取 1846.9.4字符串的读取 1856.10更多阅读** 1866.11作业 186第7章声明.定义和初始化 1917.1什么时候声明同时也是定义 1917.2C++的变量在定义时是否同时进行了缺省初始化 1937.2.1如果不提供无参构造函数会出现什么情况 1957.2.2const和引用成员的特殊情况 1977.3在Java中变量在定义时会不会进行缺省的初始化 1987.3.1缺省初始化是否受类成员的缺省值影响 2007.3.2如果构造函数为一个类成员指定了一个值,那么它的缺省值是否忽略 2007.4在C++中声明指针类型 2017.5C++的指针数组 2037.6声明多个名字 2047.7C++标识符的作用域 2057.8Java标识符的作用域 2067.9C++的数组及其初始化 2077.10Java的数组及其初始化 2107.10.1Java数组是个对象 2127.10.2实现排序.查找等功能的java.lang.Arrays类 2137.11符号常量 2147.12C++的宏 2157.13C++的枚举类型 2167.14参考资料和更多阅读** 2197.15作业 219第8章对象引用和内存分配 2228.1C++的对象引用 2228.2Java的对象引用 2248.3C++的内存分配 2248.4Java的内存分配 2258.5C++的结构 2268.6作业 228第9章函数和方法 2329.1函数声明 2329.2C++的参数传递 2329.2.1按照传值方式传递一个基本类型的参数 2339.2.2按照传指针模式传递一个基本类型的参数 2339.2.3按照传引用模式传递一个基本类型的参数 2349.2.4按照传值模式传递一个类类型的参数 2359.2.5按照传指针模式传递一个类类型的参数 2369.2.6按照传引用模式传递一个类类型的参数 2379.3Java的参数传递 2389.3.1按照传值模式传递一个基本类型的参数 2389.3.2按照传递对象引用模式传递一个类类型的参数 2389.4返回引用类型的C++函数 2419.5C++的内联函数 2439.6C++的静态变量 2449.7C++函数的const参数和const返回类型 2459.8Java方法的final形参 2479.9数组参数 2479.10C++的函数重载解析 2489.11Java的函数重载解析 2519.12C++函数的缺省参数 2529.13C++的函数指针 2539.14更多阅读** 2559.15作业 255第10章异常处理 26010.1C用于多层返回的setjmp/longjmp机制 26010.2C++的异常处理 26310.3C++异常处理的一些用法模式 26410.4C++和Java的异常处理的区别 27010.5Java的异常处理语法 27110.6Java异常处理的一些用法模式 27210.7Java的checked和unchecked异常 27710.8更多阅读** 27810.9作业 278第11章类:剩余的故事 28111.1构造函数的访问控制 28111.1.1限制对象数量 28111.1.2限制对C++无参构造函数的访问 28311.2多个构造函数可否互相调用 28511.3C++的静态成员 28511.4Java的静态成员 29111.5C++的const成员函数 29511.6C++的自身引用 29511.7Java的自身引用 29811.8C++的析构函数 29911.9Java的对象销毁 30311.10C++的拷贝构造函数和拷贝赋值操作符 30611.11Java的赋值操作符的语义 31011.12Java的对象克隆 31111.13C++的指向类成员的指针 31611.14交叉类(InterleavedClass) 31811.15C++研究:一个具有适度复杂性的交叉类 31911.16Java研究:一个具有适度复杂性的交叉类 32911.17更多阅读** 33511.18作业 335第12章C++的操作符重载 34312.1操作符标记和操作符函数 34312.2操作符的全局重载定义 34412.3操作符的成员函数重载定义 34512.4单目操作符的全局重载定义 34712.5单目操作符的成员函数重载定义 34812.6操作符重载的案例研究 34912.7灵巧指针(smartpointer):解引用操作符的重载 36012.8自增和自减操作符的重载 36712.9用户定义的转换 37112.10"()”操作符的重载 37412.11通过“”操作符的重载对类类型的对象进行排序 37612.12参考资料和更多阅读** 37912.13作业 379第13章泛型和模板 38113.1C++的参数化类和函数 38313.1.1一个C++链表程序的实现 38313.1.2一个参数化的链表程序 38613.1.3模板特化 39113.1.4模板声明的通用语法 39313.2重温迭代器 39513.2.1泛型算法的迭代器类型 39513.2.2如何声明迭代器 39613.3Java的参数化类 39713.3.1在Java中创建自己的参数化类型 39913.3.2方法的参数化 40313.3.3限制参数 40513.4参考资料和更多阅读** 40813.5作业 408第14章OO编程的模型图 41014.1用例图 41014.2类图 41214.2.1类之间的关联关系 41314.2.2类之间的聚合和合成关系 41414.2.3表示属性 41514.2.4表示操作 41514.2.5类别模板(stereotype) 41614.3交互图 41614.3.1顺序图 41714.3.2协作图 42114.4包图 42114.5状态图 42314.6活动图 42714.7参考资料和更多阅读** 42914.8作业 429第15章类的扩展 43115.1C++子类的公共派生 43115.2C++派生类的构造函数 43415.3C++派生类的拷贝构造函数 43615.4C++派生类的拷贝赋值操作符 43815.5C++派生类的操作符重载 44015.6C++派生类的析构函数 44315.7C++的虚拟成员函数 44815.7.1虚拟函数声明的限制 45215.7.2多层类层次体系中的虚拟函数 45215.7.3操作符能否具有多态行为 45415.7.4多态类型 45415.8C++函数的静态绑定和动态绑定 45515.9C++函数覆盖的限制 45815.10C++的虚拟析构函数 46115.11C++构造函数的顺序依赖性 46215.12C++的抽象类 46415.13C++的保护和私有派生类 46815.14扩展Java类 47215.15Java方法覆盖的限制 47515.16Java构造函数的顺序依赖性 47715.17Java的抽象类 47815.18Java的接口 48115.18.1在Java中实现多个接口 48515.18.2在Java中扩展接口 48515.18.3接口中的常量 48815.19C++个案研究:一个具有适当复杂度的小型类层次体系 48915.20Java个案研究:一个具有适当复杂度的小型类层次体系 50115.21参考资料和更多阅读** 51015.22作业 510第16章C++的多重继承 51516.1MI的一些例子 51516.2重复继承可能导致的问题 52016.3多重继承的虚基类 52216.4虚基类和拷贝构造函数 52716.5虚基类和赋值操作符 53016.6避免成员函数的名字冲突 53616.7处理数据成员的名字冲突 53816.8一个重复继承例子的实现 54016.9使用混合(mixin)类 54816.10使用角色扮演类 55516.11C++的运行时类型确定 56616.12参考资料和更多阅读** 56716.13作业 567第17章图形用户界面OO编程 57217.1工具箱历史的简要介绍 57317.2AWT/Swing组件 57417.3Qt部件 57517.4GNOME/GTK+部件 57517.5*简单的AWT/SwingGUI程序 57617.6*简单的QtGUI程序 57917.7*简单的GNOME/GTK+程序 58217.8GUI程序的布局管理器 58517.9AWT/Swing的布局管理器 58517.9.1BorderLayout 58617.9.2FlowLayout 58817.9.3BoxLayout 59017.9.4GridLayout 59317.9.5CardLayout 59617.9.6Grid-BagLayout 59917.10Qt的布局管理器 60217.10.1BoxLayout 60317.10.2GridLayout 60517.11GNOME/GTK+的布局管理器 60817.11.1BoxLayout 60817.11.2TableLayout 60917.12GUI程序的事件处理 61217.13AWT/Swing的事件处理 61417.14Qt的事件处理 62417.14.1一个需要使用元对象编译的Qt例子 62717.14.2信号函数和slot函数的全面总结 63417.15GNOME/GTK+的事件处理 63417.15.1GNOME/GTK+中事件与其他部件的通信 63617.15.2GNOME/GTK+回调函数的全面总结 64117.16AWT/Swing中带菜单的窗口 64317.17Qt中带菜单的窗口 64717.18GNOME/GTK+中带菜单的窗口 65317.19在AWT/Swing中绘制形状.文本和图像 66117.20在Qt中绘制形状.文本和图像 67317.21在GNOME/GTK+中绘制形状.文本和图像 67817.22JavaApplet 68717.22.1Applet的生命周期 68817.22.2Applet标签 68817.22.3一个Applet例子 69017.22.4双重用途的Applet编程 69617.22.**ppletContext接口 69917.22.6与Applet相关的安全问题 70317.23参考资料和更多阅读** 70417.24作业 704第18章面向对象多线程编程 70718.1在Java中创建和运行简单的线程 70818.2Java的Runnable接口 71118.3线程的状态 71218.4Java的线程冲突 71318.5Java的线程同步 71918.6Java用于处理死锁的等待-通知机制 72218.7Java线程之间的数据IO 72618.8JavaApplet的线程 72818.9AWT/Swing的EventDispatch线程 73018.10C/C++的多线程编程 73718.10.1用POSlX线程演示线程冲突 74218.10.2处理POSIX线程冲突的Mutex 74418.10.3POSIX线程:处理死锁的条件变量和等待-信号机制 74618.11C++的面向对象多线程编程 75018.12参考资料和更多阅读** 75618.13作业 756第19章网络编程 75819.1在Java中与现有服务器建立Socket连接 75819.2Java的服务器Socket 76119.3在C++中与现有服务器建立Socket连接 76619.4C++(Qt)的服务器Socket 77119.5更多阅读** 77819.6作业 779第20章数据库编程 78020.1关系数据库 78020.2MySQL数据库管理系统 78120.3SQL 78320.4JDBC编程:通过Java调用SQL 79020.5Mysql++编程:通过C++调用SQL 79420.6更多阅读** 79920.7作业 799参考文献 800
    编辑推荐语
    方便学习和易于掌握相似的基本语言结构;增添学习乐趣,了解每种语言的优点和不足;用不同语言编写具有相同功能的程序,可以培养灵活处理复杂项目的能力;相同概念的比较能够加深对概念的理解。
    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外