Java语言程序设计:面向对象的设计思想与实践
更新日期:2024-07-13 00:59:56
书店:互动创新图书专营店
浏览量:1061
价格:0.0¥

书籍下载

内容介绍

内容简介

  从Java语言的基础知识一直到Java类库的应用、面向对象的三大特征、多态与内部类、JavaIO/NIO、数据库程序设计、多线程及Java网络编程及Android平台程序开发。使读者能够从通俗易懂的语言中理解程序设计理念。本书在保持原版Java基础知识体系的同时,进一步从实践的角度阐述Java面向对象编程思想及其编程技巧,与当前业内Java技术的新发展相结合,细化、深化某些技术要点,强调Java应用程序设计思想及技巧,体现Java的知识性、系统性及先进性。

目录

前言
教学建议
第1章 面向对象程序设计思想 1
1.1 类和对象 1
1.2 面向对象程序设计的三大特征 3
1.2.1 封装 4
1.2.2 继承 4
1.2.3 多态 5
1.3 面向对象的程序设计 7
1.3.1 类的建模 7
1.3.2 类的层次结构设计 8
1.3.3 面向对象程序设计原则 9
1.4 Java语言简介 10
1.4.1 Java语言的特点 12
1.4.2 Java程序的开发环境 13
1.4.3 第一个Java程序 14
本章小结 19
习题 19
第2章 Java语言基础知识 21
2.1 Java语言基本元素 21
2.2 Java基本数据类型 22
2.3 引用数据类型 26
2.3.1 枚举 26
2.3.2 数组 27
2.4 基本数据类型的封装类 34
2.5 运算符及表达式 37
2.5.1 算术运算符 37
2.5.2 关系运算符 39
2.5.3 逻辑运算符与逻辑表达式 39
2.5.4 赋值运算符 40
2.5.5 位运算符 40
2.5.6 其他运算符 41
2.5.7 表达式 42
2.6 Java控制语句 42
2.6.1 分支结构 42
2.6.2 循环结构 44
2.6.3 中断结构 46
本章小结 49
习题 49
第3章 类与对象 51
3.1 类与对象的创建 51
3.2 对象的初始化 54
3.3 数据成员及方法 56
3.3.1 访问数据成员及方法 56
3.3.2 方法中参数传递的问题 57
3.3.3 toString()方法 58
3.4 类的使用 60
3.4.1 static数据 60
3.4.2 static方法 62
3.4.3 终态final 63
3.4.4 方法重载 63
3.4.5 this指针 64
3.4.6 对象的回收 67
3.4.7 包 68
3.4.8 类的访问控制 71
3.5 Java基础类库 73
3.5.1 语言包java.lang 74
3.5.2 实用包java.util 81
3.6 Java注释 83
3.6.1 Annotation的定义 84
3.6.2 基本Annotation 85
3.6.3 Annotation的用途 85
3.6.4 Java文档生成器 86
本章小结 89
习题 89
第4章 异常处理 91
4.1 异常的概念 91
4.2 异常的分类 92
4.3 异常的处理机制 94
4.3.1 非检查型异常处理 94
4.3.2 检查型异常处理 96
4.4 自定义异常类 101
本章小结 104
习题 105
第5章 类的重用 106
5.1 类的重用概述 106
5.2 重用方式之一——继承 107
5.2.1 父类与子类 107
5.2.2 继承的语法 107
5.2.3 子类的数据成员 110
5.2.4 子类的方法 111
5.2.5 继承关系下的构造方法 114
5.3 抽象类与抽象方法 117
5.4 重用方式之二——类的组合 121
5.4.1 组合的语法 121
5.4.2 组合与继承的结合 123
本章小结 126
习题 127
第6章 接口与多态 128
6.1 接口的概念及用途 128
6.2 接口的声明及实现 129
6.3 接口与抽象类的比较 140
6.4 多态 144
6.4.1 向上转型的概念及方法调用 145
6.4.2 静态绑定和动态绑定 145
6.4.3 多态的实现 147
6.4.4 多态的应用 148
6.5 内部类 149
6.5.1 内部类的概念 150
6.5.2 静态内部类 151
6.5.3 内部类实现接口及抽象类 151
6.5.4 方法中的内部类 152
6.5.5 匿名的内部类 153
本章小结 154
习题 154
第7章 Java集合框架 156
7.1 集合框架概述 156
7.2 Collection接口 158
7.3 List接口 158
7.3.1 LinkedList 159
7.3.2 ArrayList 159
7.4 泛型 160
7.4.1 泛型的定义及实例化 160
7.4.2 泛型在集合中的应用 162
7.5 迭代器 165
7.6 Set接口 167
7.7 Map接口 169
7.8 Collections类 172
7.9 比较器 173
7.10 Lambda表达式 175
本章小结 177
习题 177
第8章 输入/输出 178
8.1 I/O流的概念 178
8.2 I/O流的种类 179
8.2.1 字节流 179
8.2.2 字符流 180
8.2.3 标准输入/输出数据流 182
8.3 文件输入/输出流 185
8.3.1 字符输出流 185
8.3.2 字符输入流 187
8.3.3 字节输出流 188
8.3.4 字节输入流 190
8.3.5 File类 193
8.3.6 随机文件的读写 195
8.4 对象序列化 197
本章小结 200
习题 200
第9章 JDBC 201
9.1 JDBC简介 201
9.2 JDBC架构 201
9.3 JDBC API 202
9.4 在eclipse环境下通过JDBC访问数据库 204
9.4.1 配置开发环境 204
9.4.2 调用JDBC API编写应用程序 205
9.5 JDBC处理存储过程 216
9.6 SQLException 218
9.7 控制事务 218
9.8 JDBC其他相关用法 219
本章小结 220
习题 220
第10章 Java图形用户界面 221
10.1 Java图形用户界面类库 221
10.2 Swing的组件 222
10.3 Swing组件的层次结构 223
10.4 Swing GUI程序 224
10.4.1 顶层容器 225
10.4.2 中间层容器 226
10.4.3 布局管理器 228
10.4.4 Swing组件 231
10.5 事件处理机制 236
10.5.1 事件响应 236
10.5.2 事件处理的实现方法 239
10.6 Swing Designer可视化图形界面编程 244
本章小结 256
习题 256
第11章 多线程 257
11.1 进程与线程 257
11.2 多线程创建方式 258
11.2.1 Thread类 258
11.2.2 Runnable接口 260
11.3 守护线程 261
11.4 线程的生命周期 262
11.5 线程的常用方法 264
11.6 线程的优先级 268
11.7 多线程的编程方式 268
11.7.1 不相关的线程 269
11.7.2 相关但无须同步的线程 269
11.7.3 同步线程 270
11.7.4 交互式线程 274
11.8 死锁 278
11.9 高级并发 279
11.9.1 Lock和Condition 280
11.9.2 读写锁 282
11.9.3 阻塞队列(BlockingQueue) 284
11.9.4 线程池 287
本章小结 289
习题 290
第12章 Java Socket网络编程 291
12.1 网络通信协议 291
12.2 Socket基本概念 293
12.3 TCP Socket编程 294
12.3.1 TCP Socket点到点通信 294
12.3.2 TCP Socket多线程通信 299
12.4 UDP Socket编程 302
12.4.1 UDP Socket点到点通信 302
12.4.2 UDP Socket多线程通信 307
12.4.3 UDP Socket组播通信 308
本章小结 310
习题 310
第13章 Java非阻塞IO(NIO) 312
13.1 Java NIO与标准IO的区别 312
13.2 NIO的核心对象 312
13.2.1 通道 313
13.2.2 缓冲区 317
13.2.3 选择器 319
13.3 NIO Socket通信单线程模式 321
13.4 基于反应器的NIO Socket多线程模式 324
本章小结 325
习题 325
第14章 Android图形用户界面开发简介 326
14.1 Android概述 326
14.2 Android系统架构 327
14.3 Android应用程序组件 328
14.4 Android的图形界面元素 329
14.4.1 视图和视图组 329
14.4.2 布局管理 331
14.4.3 事件驱动 331
14.5 eclipse下的Android开发环境配置 332
14.6 Android图形用户界面开发示例 335
14.6.1 Android应用程序目录结构 335
14.6.2 创建按钮示例 336
14.7 常用的Android控件 338
本章小结 350
习题 351
参考文献 352

前言/序言

  第2版说明本书第1版于2012年9月出版,第2版在第1版的基础上,结合当今Java发展的最新技术,广泛听取了读者和同行的建议,并根据作者在授课和开发过程中的实践经验重新整编。
  本书在保持第1版Java基础知识体系的同时,进一步从实践的角度阐述Java面向对象的编程思想及编程技巧,与当前业内Java技术的最新发展相结合,细化、深化某些技术要点,强调Java应用程序的设计思想及技巧,体现Java的知识性、系统性及先进性。主要更新知识点如下:
  1.紧密结合Java的最新发展,在JDK 5、JDK 6、JDK 7的基础上,继续增添JDK 8的语法新特性。
  2.删除第1版的Java applet部分,因为该技术如今已经很少使用。
  3.增加Java网络应用知识,增添Java Socket网络编程和Java非阻塞IO(NIO),并以实例展示Socket 、NIO结合多线程在网络及分布式系统中的综合应用。
  4.深化多线程编程,同时进一步细化并深入分析多线程高级并发部分,补充了线程池、阻塞队列等内容。
  5.增加Android图形用户界面开发简介。结合当今Java在GUI方面的应用重点已经转移到Android 平台的特点,介绍Android系统架构及组件,并以实例的形式讲解Android GUI基础控件的开发。
  6.其他增添及更新的细节包括:Java基础部分的注释(Annotation)、反射机制,Java集合框架的Collections类、比较器、泛型,JDBC连接数据库的调用存储过程,等等。
  本书背景作为当今最流行而且不断发展的面向对象程序设计语言,Java语言随着网络的发展而被广泛普及、应用,Java语言已经和我们的日常生活息息相关。信息化的发展带动了Java在金融、通信、制造、电子政务、移动设备及消费类电子产品等领域日益广泛的应用,尤其是近年来Android移动平台的推广,又为Java语言注入了新的活力,使之成为IT行业一颗璀璨的明星。
  近年来,市场对Java开发人才的需求旺盛,激发了广大开发人员学习Java语言的兴趣。但是,对于很多Java初学者来说,如何选择适合自己的教材,从而快速提高Java编程水平,是很重要的事情。
  本书作者具有丰富的教学经验及工业界软件开发经历,书的设计力求切合实际,尽量为缩小计算机专业毕业生与工业界人才需求之间的差距做出一些努力,同时引导读者深入理解Java程序设计,少走弯路。本书从始至终贯穿着面向对象的编程思想,以Java语言为实现方式,强调Java语言的精华在于“面向对象思想”。本书覆盖的内容全面,从Java语言的基础知识一直到Java类库的应用、数据库程序设计及Android平台程序开发。使读者能够从通俗易懂的语言中理解程序设计理念,帮助读者认识到任何一种面向对象程序设计语言的语法和风格可能有所不同,但是其编程思想都是一致的,编程语言的学习不应该局限于表面的语法格式,而是应该深入了解程序设计语言的本质规律,掌握其精髓思想,才能真正学会并运用一门程序语言。
  本书特色本书的主要特色为通俗易懂、实践性强、例题丰富,展现了Java最新技术。
  本书着重探究应用设计技巧及解决方案,始终以面向对象设计理念为主线,解析面向对象程序设计思想及方法,强调语法知识的学习应以理解编程思想为前提。
  本书强调Java语言的实践性,提供大量实用性很强的编程实例,实例生动、完整、连贯性强,并配有与开发相关的重要技术要点提示。采用业内流行的eclipse集成开发环境作为开发平台,配合UML(统一建模语言)表述程序分析及设计。另外还提供了一个覆盖所有重要知识点的综合性开发实例(电子产品商店管理系统),该实例随着面向对象程序设计理论的深入、Java语法知识点的展开,由浅入深,并逐步完善和扩展规模,最后形成一个具有图形用户界面、实现数据库访问操作的、规模适中的应用管理系统,帮助学生理解Java编程的设计与实现。
  本书强调Java语言的更替性及应用性,紧密结合Java语言不断发展的特色,覆盖内容全面,理论阐述简洁浅显,具有较强的可读性。本书也力求反映Java技术的新成果、新趋势,将JDK 5、JDK 6、JDK 7及JDK 8的最新技术和思想方法介绍给读者。本书还简要介绍了目前Java语言应用最为广泛的Android移动平台以及基本的Android图形用户界面编程方法。
  本书习题侧重于培养学生自主学习、自行探索、独立解决问题以及团队协作的能力。学生不仅可以练习编程,而且还能自行设计程序架构,学习查阅资料解决问题。习题具有连贯性,循序渐进,分组协作,最终逐步扩展为一个基于TCP/IP及多线程的完整C/S架构应用系统。
  主要内容全书分为三部分,共14章:第一部分,全面阐述面向对象程序设计思想及Java基础语法,内容包括第1章、第2章;第二部分,结合实例,以Java语言讲述面向对象的三大特征及程序设计方法,内容包括第3~6章;第三部分,讲述Java语言类库、输入/输出、多线程、图形用户界面、数据库、网络及Android无线移动通信平台中的图形用户界面,内容包括第7~14章。
  各章内容介绍如下:
  第1章介绍面向对象的基本概念、面向对象的三大特征(封装、继承和多态)、类的建模及其结构层次设计、面向对象程序设计原则,并对Java语言特点及开发环境eclipse进行了概要的介绍。
  第2章全面介绍Java语言基础知识及语法,具体包括Java语言基本元素、基本数据类型、引用数据类型、基本数据类型的封装类、运算符、表达式及流程控制。
  第3章讲述类与对象。从如何设计类开始,到对象的创建及使用方法、static静态成员的基本特征、方法重载、包的概念、类的访问控制,以及基础类库。
  第4章讲述异常处理,包括异常的概念、异常的分类、异常的处理机制、自定义异常类。
  第5章讲述类的重用,包括类的继承和类的组合两种方式的语法实现,并介绍了抽象类与抽象方法、类成员方法的覆盖。
  第6章讲述接口与多态,从接口存在的必要性入手,逐步引导读者理解接口如何在程序结构中实现多重继承、多态的概念及实现、多态的适用环境,以及内部类的概念及使用方法。
  第7章讲述Java的集合框架及其提供的几种集合,并介绍了泛型的相关知识及其在集合中的应用。
  第8章讲述输入/输出,包括I/O流的概念、I/O流的分类、文件读写以及对象的序列化。
  第9章讲述JDBC访问数据库,主要介绍JDBC技术的原理、JDBC API、通过JDBC访问数据库、实现与数据库的连接,以及访问数据库的一系列操作。
  第10章讲述Java图形用户界面,具体包括Java图形用户界面类库、Swing的组件、Swing组件的层次结构、Swing GUI 程序、事件处理机制、eclipse下的可视化图形界面编程。
  第11章讲述Java多线程,具体包括进程与线程的概念、多线程编程基础、线程的生命周期、线程的常用方法、多线程的编程方式、死锁等相关问题的处理。扩展讲解了高级并发提供的几种机制,包括Lock与Condition、读写锁、阻塞队列、线程池等。
  第12章讲述Java Socket网络编程,包括基于TCP/UDP 的单线程C/S模式或者多线程C/S模式。
  第13章讲述Java 非阻塞IO(NIO),包括Java NIO包含的3个核心对象缓冲区、通道、选择器及其操作方法,以及NIO Socket的通信机制。
  第14章讲述Android图形用户界面开发,包括Android框架及应用程序组件、开发环境配置、Android 图形用户界面的各种控件及其使用示例。
  本书提供完整的示例程序来讲解基本概念,所有程序都在eclipse4.5 Mars环境下编译运行通过,本书提供电子教学课件及各章例题。
  致谢在书稿的完成过程中,机械工业出版社的编辑此书的出版给予了周到的安排和支持,同时也得到了家人、朋友的大力支持,使此书得以在短时间内出版,在此对他们表示真挚的感谢!
  尽管作者具有程序设计方面的教学经验以及软件项目开发经验,但由于时间仓促及水平有限,难免存在不妥之处,恳请广大读者给予批评指正。
  编者2016年5月