新書推薦:
《
逃不开的科技创新战争
》
售價:HK$
103.3
《
漫画三国一百年
》
售價:HK$
55.2
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:HK$
82.8
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:HK$
59.8
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:HK$
103.8
《
资治通鉴熊逸版:第四辑
》
售價:HK$
458.9
《
中国近现代名家精品——项维仁:工笔侍女作品精选
》
售價:HK$
66.1
|
編輯推薦: |
本书是Java语言学习的经典入门教材。历久弥新,多次修订,累计印刷50多次印刷,已经成为众多高校的首选教材。
选材基础,内容丰富而不冗杂,讲解深入浅出而不枯燥,重点突出而不疏漏。讲解语法的同时,也介绍面向对象的设计理念与技术实现。
精心设计237个例题和程序案例,读者可将程序示例作为模板,模仿学习,举一反三,效果佳,效率高。
提供PPT、源代码、思政素材等数字资源,让教与学的过程更加容易。
本书有配套的《Java程序设计题解与上机指导(第5版)》。
|
內容簡介: |
本书从Java语言的基本特点入手,全面介绍了Java语言的基本概念和编程方法,并深入讲解了Java的高级特性。内容涉及Java中的基本语法、数据类型、类、异常、界面设计、小应用程序、I/O数据流、线程及网络功能等内容,基本覆盖了Java的大部分技术,是进一步使用Java语言进行技术开发的基础。本书适合Java语言的初学者使用,也可作为专业人员的参考书。
本书内容详尽,实例丰富,每章均有配套的习题,方便教学,适合作为高等学校教材,也可作为专业人员的参考书。
本书的习题解答及有关上机实验可参看与本书配套的《Java程序设计题解与上机指导》(第5版)。
|
目錄:
|
第1章 概述 1
1.1 什么是Java语言 1
1.1.1 Java语言的特点 1
1.1.2 Java的三层架构 3
1.1.3 Java语言的目标 4
1.1.4 Java虚拟机 4
1.1.5 垃圾收集 5
1.1.6 代码安全 5
1.2 一个基本的Java应用程序 8
1.2.1 开发环境的安装 8
1.2.2 Java应用程序 11
1.3 程序的编译和运行 13
1.3.1 编译 13
1.3.2 运行 14
1.4 常见错误 14
1.4.1 编译时错误 14
1.4.2 运行时错误 15
1.5 使用Java核心API文档 17
习题 19
第2章 标识符和数据类型 20
2.1 Java的基本语法单位 20
2.1.1 空白、注释及语句 20
2.1.2 关键字 22
2.1.3 标识符 22
2.2 Java编码体例 23
2.3 Java的基本数据类型 24
2.3.1 基本数据类型 24
2.3.2 类型转换 27
2.3.3 变量、说明和赋值 27
2.4 复合数据类型 29
2.4.1 概述 29
2.4.2 复合数据类型 29
2.5 类和对象的初步介绍 30
2.5.1 Java中的面向对象技术 30
2.5.2 Java中的类定义 32
2.5.3 Java中与OOP有关的关键字 33
2.5.4 类定义示例 35
2.5.5 创建一个对象 38
2.5.6 引用变量的赋值 40
2.5.7 默认初始化和null引用值 41
2.5.8 术语概述 41
习题 42
第3章 表达式和流程控制语句 44
3.1 表达式 44
3.1.1 操作数 44
3.1.2 运算符 48
3.1.3 表达式的提升和转换 52
3.1.4 数学函数 52
3.2 流控制 53
3.2.1 表达式语句 53
3.2.2 块 54
3.2.3 分支语句 54
3.2.4 循环语句 59
3.2.5 break语句与continue语句 62
3.2.6 注释语句 64
3.3 简单的输入输出 64
习题 67
第4章 数组、向量和字符串 70
4.1 数组 70
4.1.1 数组说明 70
4.1.2 创建数组 71
4.1.3 数组边界 74
4.1.4 数组元素的引用 74
4.1.5 多维数组 75
4.1.6 数组复制 80
4.2 Vector类 81
4.2.1 概述 81
4.2.2 Vector类的构造方法 82
4.2.3 Vector类对象的操作 82
4.2.4 Vector类中的其他方法 84
4.2.5 Vector类的使用举例 84
4.3 字符串类型 86
4.3.1 字符串简述 86
4.3.2 字符串说明及初始化 86
4.3.3 字符串处理 87
4.3.4 几个特殊处理 88
习题 90
第5章 进一步讨论对象和类 93
5.1 抽象数据类型 93
5.1.1 概述 93
5.1.2 定义方法 94
5.1.3 按值传送 97
5.1.4 方法重载 98
5.2 对象的构造和初始化 99
5.2.1 显式成员初始化 100
5.2.2 构造方法 100
5.2.3 默认的构造方法 101
5.2.4 构造方法重载 102
5.2.5 finalize()方法 103
5.2.6 this引用 103
5.3 子类 104
5.3.1 is-a关系 105
5.3.2 extends关键字 105
5.3.3 单重继承 106
5.3.4 转换对象 108
5.3.5 方法自变量和异类集合 110
5.4 方法重写 111
5.4.1 方法重写示例 111
5.4.2 应用重写的规则 115
5.4.3 调用父类构造方法 116
5.5 多态 117
5.6 Java包 118
5.6.1 Java包的概念 119
5.6.2 import语句 119
5.6.3 目录层次关系及CLASSPATH环境变量 121
5.6.4 访问权限与数据隐藏 122
5.6.5 封装 123
5.7 类成员 124
5.7.1 类变量 124
5.7.2 类方法 126
5.8 final关键字 128
5.8.1 终极类 128
5.8.2 终极方法 129
5.8.3 终极变量 130
5.9 抽象类 131
5.10 接口 133
5.10.1 接口的定义 133
5.10.2 接口的实现 134
5.11 内部类 137
5.11.1 内部类的概念 137
5.11.2 匿名类 139
5.11.3 内部类的工作方式 140
5.12 包装类 141
习题 142
第6章 Java语言中的异常 145
6.1 异常 145
6.1.1 引出异常 145
6.1.2 异常的概念 147
6.1.3 异常分类 148
6.2 异常处理 149
6.2.1 try-catch块 150
6.2.2 再讨论前面的示例 152
6.2.3 公共异常 153
6.3 抛出异常 154
6.4 创建自己的异常 155
习题 157
第7章 Java语言的高级特性 158
7.1 泛型 158
7.1.1 泛型数据类型 158
7.1.2 接口中的泛型 158
7.1.3 泛型类 159
7.1.4 泛型方法 161
7.2 迭代器 162
7.2.1 迭代器的基本概念 162
7.2.2 Iterator接口 162
7.2.3 Iterable接口 164
7.2.4 使用迭代器示例 164
7.2.5 Iterable和for-each循环 167
7.3 克隆 168
习题 176
第8章 Java的图形用户界面设计 178
8.1 AWT与Swing 178
8.2 容器 179
8.2.1 顶层容器 179
8.2.2 使用JFrame创建应用程序 180
8.2.3 内容窗格 181
8.2.4 面板 182
8.3 布局 183
8.3.1 一个简单的示例 183
8.3.2 FlowLayout布局管理器 185
8.3.3 BorderLayout布局管理器 186
8.3.4 GridLayout布局管理器 188
8.3.5 CardLayout布局管理器 190
8.3.6 BoxLayout布局管理器 192
8.3.7 其他布局管理器 197
8.4 事件处理 198
8.4.1 事件处理模型 198
8.4.2 事件的种类 200
8.4.3 一个较复杂的示例 202
8.4.4 多监听程序 204
8.4.5 事件适配器 205
习题 206
第9章 Swing组件 208
9.1 按钮 208
9.1.1 普通按钮 208
9.1.2 切换按钮、复选框及单选按钮 212
9.2 标签 218
9.3 组合框 221
9.4 列表 223
9.5 文本组件 229
9.5.1 文本域 229
9.5.2 文本区 234
9.6 菜单组件 236
9.6.1 菜单栏 237
9.6.2 菜单 237
9.6.3 菜单项 238
9.6.4 复选菜单项和单选菜单项 239
9.6.5 弹出式菜单 242
9.7 对话框、标准对话框与文件对话框 245
9.7.1 对话框 245
9.7.2 标准对话框 246
9.7.3 文件对话框 250
9.8 控制组件外观 253
9.8.1 颜色 253
9.8.2 字体 254
9.8.3 绘图 256
习题 260
第10章 Java Applet 261
10.1 编写Applet 263
10.2 Applet的方法和Applet的生命周期 265
10.3 Applet的运行 266
10.3.1 用于显示Applet的方法 266
10.3.2 appletviewer 268
10.3.3 HTML与标记 268
10.3.4 Applet参数的读取 270
10.3.5 Applet与URL 271
10.4 Applet中的多媒体处理 272
10.4.1 在Applet中显示图像 272
10.4.2 在Applet中播放声音 273
10.5 Applet的事件处理 275
10.6 Applet与普通应用程序的结合 276
习题 278
第11章 Java数据流 279
11.1 数据流的基本概念 279
11.1.1 输入数据流 280
11.1.2 输出数据流 281
11.2 基本字节数据流类 282
11.2.1 文件数据流 282
11.2.2 过滤流 284
11.2.3 管道数据流 285
11.2.4 对象流 287
11.2.5 可持久化 288
11.3 基本字符流 291
11.3.1 读者和写者 291
11.3.2 缓冲区读者和缓冲区写者 292
11.4 文件的处理 296
11.4.1 File类 296
11.4.2 随机访问文件 299
习题 299
第12章 线程 301
12.1 线程和多线程 301
12.1.1 线程的概念 301
12.1.2 线程的结构 302
12.2 线程的状态 303
12.3 线程的创建 304
12.3.1 创建线程的方法一——继承Thread类 305
12.3.2 创建线程的方法二——实现Runnable接口 307
12.3.3 关于两种创建线程方法的讨论 309
12.4 线程的启动 310
12.5 线程的调度 310
12.6 线程的基本控制 312
12.6.1 结束线程 312
12.6.2 检查线程 312
12.6.3 挂起线程 312
12.7 同步问题 313
12.7.1 线程间的通信 313
12.7.2 线程间的资源互斥共享 315
12.7.3 对象的锁定标志 317
12.7.4 同步方法 318
12.8 死锁 319
12.9 线程交互——wait()和notify() 321
12.9.1 问题的提出 321
12.9.2 解决方法 322
12.9.3 守护线程 323
12.9.4 综合应用 324
习题 329
第13章 Java的网络功能 330
13.1 概述 330
13.2 使用InetAddress 332
13.3 统一资源定位器 333
13.3.1 URL的概念 333
13.3.2 URL的构造方法 334
13.3.3 与URL相关的异常 335
13.3.4 获取URL对象属性 335
13.3.5 读入URL数据 336
13.4 Socket接口 339
13.4.1 Socket的基本概念 340
13.4.2 Socket通信的基本步骤 341
13.4.3 Socket通信的程序设计 342
13.5 Java编程综合实例 344
习题 351
参考文献 352
·X·
·III·
|
內容試閱:
|
目前,Java语言仍占据着编程语言排行榜的前位,仍是程序员首选的开发语言之一。国内高校不仅开设了程序设计语言课程来讲授Java,更有越来越多的课程基于Java语言,例如用它来描述数据结构并实现相关算法,用它来开发网络应用等。
鉴于Java语言本身仍在不断地发展,我们在《Java程序设计》(第4版)的基础上编写了第5版,并配套编写了《Java程序设计题解与上机指导》(第5版)。相较于第4版,第5版做了以下几方面的改进。
(1)根据实际情况,重新编写了JDK的安装过程部分。
(2)新版本的Java API在部分类及类的方法中使用了泛型,书中用到这些类及方法的相关程序进行了相应的修改,并根据实际情况用具体的类进行了实例化。
(3)有些涉及泛型的示例也进行了相应的修改。
(4)重新调试了所有程序。
(5)修正了一些错误和不当之处。
本书从Java语言的基本特点入手,详细介绍了Java语言的基本概念和编程方法,以帮助读者深入了解Java的高级特性。本书共分为13章,涉及Java中的基本语法、数据类型、类、异常、界面设计、小应用程序、I/O数据流、线程及网络功能等内容。这些内容基本覆盖了Java的大部分技术,是进一步使用Java语言进行技术开发的基础,愿本书能成为读者进入Java殿堂的铺路石。
全书13章的各章末均有配套的习题,供读者练习使用。本书不仅适合Java语言的初学者使用,也可作为专业人员的参考书。
计算机技术是不断发展、不断完善的技术,Java语言也是如此。在本书出版的过程中,Java语言仍没有停止它的完善过程。本书目前的内容以当前的Java版本为标准讲解,如若使用更高版本的Java,则应参考新标准。
本书的编写得到了南开大学计算机学院的大力支持。本书第1版至第4版的出版离不开清华大学出版社焦虹编辑的热心鼓励和全力支持。虽然焦老师已经不在编辑第一线工作,但仍对第5版的编写给予了极大的关注。在此,我们要对焦老师一直以来的提携和鼓励表示深深的感谢。祝愿焦老师的荣休生活丰富多彩,身体康健!此外,我们也要感谢清华大学出版社袁勤勇编辑对第5版的编写给予的具体指导和认真修订,以及出版社的编辑、制作、发行的老师们付出的艰辛努力。并且同样感谢读者在众多的Java参考书中选中了本书。
本书由辛运帏、饶一梅编写。由于编者的水平有限,书中难免有错误和不妥之处,恳请广大读者特别是同行专家们批评指正,感谢您的指导,这将是我们继续编写好教材的动力。
编者
2024年8月于南开大学
·II·
·I·
|
|