![]() ![]() |
案例式Java语言程序设计
本书通过一个完整的案例将Java语言的基本特征、面向对象特征以及Java语言的高级特征有机融合在一起,形成Java语言的核心知识体系,让信息管理与信息系统相关专业的学生快速掌握Java语言的基本思想和基本技能,培养学生正确应用面向对象的思维方法分析问题和解决问题的能力。Java语言的基本特征包括数据类型,数据与字符串,基本数据处理,数据输入/输出以及图形用户界面等。Java语言面向对象特征包括面向对象的基本概念与思想,类与对象,封装、继承与多态,抽象类与接口等。Java语言的高级特征包括集合类,异常处理,输入/输出以及基于JDBC的数据库应用开发等。同时,为强化学生对所学Java语言知识的理解和灵活运用,每章均会附一定数量的编程作业习题以及相应的参考答案。
徐硕:男,1979年出生。现为北京工业大学经济与管理学院教授,博士生导师,信息管理与信息系统专业负责人。主要研究方向为技术预见、产业分析和大数据挖掘等。获2013年度“中央国家机关青年岗位能手”荣誉称号,在中国图书馆学会“青年学术之星”荣誉称号,2019年“国际新兴技术预测竞赛”获第二名。先后主持国家科技支撑计划课题、国家自然科学基金项目(青年及面上)、北京市社科基金一般项目、北京市教委社科重点项目、广东省自然科学基金等多项国家级及省部级研究课题。近年来,在JAIST、JoI、TFSC、SCIM、JIS、PLoS ONE、情报学报、科研管理等重要期刊和学术会议上发表学术论文100余篇,授权发明专利6项(中国发明专利5项,韩国发明专利1项),撰写学术专著1部。
第1章 绪论001
1.1 编程语言的发展 / 001
1.1.1 机器语言 / 002
1.1.2 汇编语言 / 003
1.1.3 面向过程的编程语言 / 004
1.1.4 面向对象的编程语言 / 005
1.1.5 面向对象的编程语言的发展历程 / 006
1.1.6 编程语言的流行度 / 006
1.2 编程语言Java / 008
1.2.1 Java语言的产生 / 008
1.2.2 Java语言的特点 / 009
1.3 Java程序的集成开发环境 / 013
1.4 Java虚拟机 / 014
本章习题 / 016
第2章 Java语言基础017
2.1 Java基本语法 / 017
2.1.1 标识符 / 017
2.1.2 关键字 / 018
2.1.3 Java中的特殊符号 / 019
2.2 原始数据类型 / 020
2.2.1 整数类型 / 020
2.2.2 字符数据类型 / 022
2.2.3 浮点类型 / 025
2.2.4 数据类型转换 / 026
2.3 String类型 / 027
2.4 运算符 / 028
2.4.1 算术运算符 / 029
2.4.2 移位运算符 / 029
2.4.3 位运算符 / 030
2.4.4 赋值运算符 / 031
2.4.5 关系运算符 / 031
2.4.6 逻辑运算符 / 032
2.4.7 运算符的优先级 / 033
2.5 常量及变量 / 034
2.5.1 常量 / 034
2.5.2 变量 / 034
2.6 语句 / 035
2.6.1 Java语言中的三种语句 / 035
2.6.2 程序控制流:条件语句 / 036
2.6.3 程序控制流:循环语句 / 040
2.6.4 程序控制流:控制循环语句 / 043
本章习题 / 045
第3章 类与对象046
3.1 面向过程与面向对象 / 046
3.1.1 面向过程与面向对象的区别 / 046
3.1.2 封装机制 / 048
3.1.3 面向过程与面向对象的优缺点 / 048
3.2 类与对象的概念 / 049
3.2.1 对象 / 049
3.2.2 类 / 050
3.2.3 类与对象的关系 / 050
3.2.4 类的声明 / 051
3.2.5 创建及使用对象 / 052
3.3 构造方法 / 056
3.4 类的严谨定义 / 057
3.4.1 访问权限修饰符 / 058
3.4.2 非访问权限修饰符 / 060
3.4.3 类修饰符使用注意事项 / 062
3.5 数据成员 / 062
3.5.1 访问权限修饰符 / 063
3.5.2 非访问权限修饰符 / 063
3.6 成员方法 / 066
3.6.1 成员方法的分类 / 066
3.6.2 成员方法的声明 / 066
3.6.3 方法体内的局部变量 / 067
3.6.4 成员方法的返回值 / 068
3.6.5 形式参数与实际参数 / 069
3.6.6 成员方法引用注意事项 / 070
3.6.7 成员方法的递归引用 / 071
3.6.8 static成员方法 / 071
3.6.9 final成员方法 / 072
本章习题 / 072
第4章 封装、继承与多态074
4.1 封装 / 074
4.1.1 封装的概念 / 074
4.1.2 封装的特征 / 075
4.2 继承 / 077
4.2.1 继承的概念 / 077
4.2.2 访问修饰符 / 080
4.2.3 成员方法覆盖 / 084
4.2.4 数据成员隐藏 / 086
4.2.5 关键字super / 087
4.2.6 子类的构造过程 / 088
4.3 多态 / 088
4.4 抽象类与抽象方法 / 092
4.5 接口 / 096
4.5.1 接口的声明 / 096
4.5.2 接口与抽象类的异同 / 102
本章习题 / 103
第5章 数组与字符串104
5.1 数组的概念 / 104
5.2 一维数组 / 105
5.2.1 一维数组的声明 / 105
5.2.2 一维数组的初始化 / 105
5.2.3 数组的增长原理 / 109
5.2.4 数组的赋值及参数传递 / 110
5.2.5 对象数组 / 112
5.3 二维数组 / 115
5.3.1 二维数组的声明 / 115
5.3.2 二维数组的初始化 / 115
5.3.3 二维数组的本质 / 117
5.4 字符串 / 121
5.4.1 String类 / 121
5.4.2 StringBuffer类和StringBuilder类 / 126
本章习题 / 128
第6章 集合类130
6.1 集合和集合框架 / 130
6.1.1 集合 / 130
6.1.2 集合框架 / 131
6.1.3 迭代器 / 132
6.2 List接口和实现类 / 133
6.2.1 ArrayList实现类 / 134
6.2.2 List的排序 / 137
6.2.3 自定义泛型类 / 139
6.2.4 Vector类 / 142
6.2.5 LinkedList类 / 143
6.3 Set接口 / 146
6.3.1 HashSet类 / 148
6.3.2 SortedSet接口和TreeSet类 / 151
6.3.3 匿名类 / 154
6.4 Map接口 / 157
6.4.1 单文档词频统计 / 160
6.4.2 多文档词频统计 / 161
本章习题 / 162
第7章 初级图形用户界面设计163
7.1 GUI概述 / 163
7.1.1 Java的图形设计包 / 164
7.1.2 用户界面三要素 / 164
7.1.3 awt和swing的特点 / 165
7.1.4 构建GUI应用的步骤 / 166
7.2 容器的分类及常用方法 / 166
7.2.1 容器的分类 / 166
7.2.2 容器的方法 / 167
7.3 WindowBuilder插件 / 169
7.4 布局管理器 / 170
7.4.1 FlowLayout(流式布局) / 172
7.4.2 BorderLayout(边界布局) / 174
7.4.3 GridLayout(网格布局) / 180
7.4.4 CardLayout(卡片布局) / 182
7.4.5 BoxLayout(箱式布局) / 186
7.4.6 GridBagLayout(网格包布局) / 190
本章习题 / 195
第8章 高级图形用户界面设计196
8.1 事件响应原理 / 196
8.1.1 事件与事件源 / 196
8.1.2 事件监听器 / 197
8.1.3 委托事件模型 / 197
8.2 事件适配器 / 198
8.3 KeyEvent事件及其响应 / 199
8.4 MouseEvent事件及其响应 / 204
8.5 JScrollBar组件 / 210
8.6 JTabbedPane容器 / 216
8.7 菜单设计 / 219
8.8 对话框设计 / 226
8.8.1 JDialog类 / 226
8.8.2 JOptionPane类 / 227
本章习题 / 237
第9章 异常处理238
9.1 异常 / 238
9.1.1 异常的产生与传递 / 240
9.1.2 运行时异常处理 / 240
9.2 异常处理方法 / 241
9.2.1 throws处理方法 / 242
9.2.2 try-catch处理方法 / 244
9.3 异常处理机制 / 247
9.3.1 多重异常捕获 / 248
9.3.2 隐式的finally语句块 / 249
9.3.3 嵌套try-catch结构 / 249
9.3.4 有异常的方法覆盖 / 250
9.4 异常处理的原则和技巧 / 252
9.5 自定义异常 / 252
本章习题 / 255
第10章 输入与输出256
10.1 Java的输入与输出 / 256
10.2 字节流与字符流 / 257
10.2.1 InputStream类 / 257
10.2.2 OutputStream类 / 259
10.2.3 Reader类与Writer类 / 263
10.3 文件的输入与输出 / 269
10.3.1 File类 / 269
10.3.2 FileInputStream类与FileOutputStream类 / 272
10.3.3 FileReader类和FileWriter类 / 274
10.4 对象的序列化 / 276
10.4.1 序列化的概念 / 276
10.4.2 ObjectInputStream和ObjectOutputStream中的
对象序列化 / 276
10.4.3 序列化对象注意事项与应用 / 279
本章习题 / 280
附 录281
附录A JDK的安装 / 281
附录B Eclipse的安装 / 287
附录C WindowBuilder的安装 / 290
插图目录
图1-1 计算机语言与自然语言之间的鸿沟变化 002
图1-2 机器语言代码示例 003
图1-3 汇编语言代码示例 004
图1-4 按TIOBE指数排名前15的编程语言 007
图1-5 按PYPL指数排名前15的编程语言 007
图1-6 传统语言与Java语言程序的运行机制 010
图1-7 JVM的内部体系结构 015
图2-1 ASCII字符编码 024
图2-2 单分支if语句执行流程图 036
图2-3 双分支if-else语句执行流程图 037
图3-1 封装机制示意图 048
图3-2 类与对象的关系 051
图3-3 类的图形表示 052
图3-4 声明对象的内存分配 053
图3-5 建立对象的内存分配 054
图3-6 简单变量的栈内存分配示例 055
图3-7 静态数据成员内存变化情况 064
图3-8 静态常量数据成员内存变化情况 066
图4-1 Circle1和Circle2类的图形表示 077
图4-2 运输工具继承树示意图 079
图4-3 借记卡类(DebitCard)和信用卡类(CreditCard)的图形表示 081
图4-4 银行卡父类(Card)、借记卡子类(DebitCard)和信用卡子类(CreditCard)的图形表示 081
图4-5 Object类的图形表示 088
图4-6 抽象Shape父类、Circle子类、Rectangle子类和Triangle子类的图形表示 093
图4-7 类、接口及其关系示意图 098
图4-8 抽象Animal父类、Runnable接口、Flyable接口、Dog子类和Pigeon子类的图形表示 098
图5-1 声明时数组对象的内存分配 105
图5-2 数组对象a及其引用的数组内容 106
图5-3 初始化后数组对象的内存分配 106
图5-4 用关键字new初始化后的整型(int)数组 107
图5-5 用关键字new初始化后的String类型数组 107
图5-6 数组增长原理示意图 109
图5-7 赋值语句执行前后数组的指向情况 111
图5-8 规整型arra数组的各元素值 116
图5-9 不规整型arra数组的各元素值 117
图5-10 二维数组在Java语言中的实现 118
图5-11 str关联字符串对象示意图 121
图5-12 两种创建字符串对象方式的差异示意图 123
图5-13 字符串连接操作实例 125
图6-1 核心集合接口及其关系 131
图6-2 核心集合接口及主要实现类 132
图6-3 分组主要思想示意图 140
图6-4 双向链表与双向循环链表示意图 143
图6-5 栈(stack)结构示意图 144
图6-6 Set过滤重复元素的过程 148
图6-7 Map与数据库中的表(table)对比 157
图7-1 FlowLayout示例程序运行界面 174
图7-2 BorderLayout布局管理器的窗格安排 175
图7-3 BorderLayout示例程序运行界面 177
图7-4 BorderLayout和FlowLayout联合使用示例程序运行界面 179
图7-5 计算器示例程序运行界面 182
图7-6 CardLayout示例程序运行界面 186
图7-7 BoxLayout示例程序运行界面 190
图7-8 复杂网络布局示意图 191
图7-9 GridBagLayout示例程序运行界面 194
图8-1 文本拷贝示例程序运行界面 204
图8-2 MouseEvent事件及其响应示例程序运行界面 210
图8-3 JScrollBar组件类型及相关元素 210
图8-4 JScrollBar组件示例程序运行界面 216
图8-5 JTabbedPane容器示例程序运行界面 219
图8-6 Java语言中构造菜单的三类对象 220
图8-7 菜单设计示例程序运行界面 226
图8-8 消息型对话框的五种细分类型 228
图8-9 确认型对话框的四种细分类型 228
图8-10 输入型对话框的两种细分类型 229
图8-11 对话框设计示例程序运行界面 236
图9-1 异常体系结构层次 239
图9-2 算术异常信息截图 240
图9-3 自定义异常(AgeException)信息截图 255
图A-1 JDK安装步骤一 281
图A-2 JDK安装步骤二 281
图A-3 JDK安装步骤三 282
图A-4 JDK安装步骤四 282
图A-5 JDK安装步骤五 282
图A-6 环境变量配置 283
图A-7 JAVA_HOME环境变量配置 283
图A-8 CLASSPATH环境变量配置 284
图A-9 Path环境变量配置一 284
图A-10 Path环境变量配置二 284
图A-11 Path环境变量配置三 285
图A-12 java命令运行界面 286
图A-13 javac命令运行界面 287
图B-1 Eclipse安装步骤一 287
图B-2 Eclipse安装步骤二 288
图B-3 Eclipse安装步骤三 288
图B-4 Eclipse安装步骤四 288
图B-5 Eclipse安装步骤五 289
图B-6 Eclipse安装步骤六 289
图B-7 Eclipse安装步骤七 290
图C-1 WindowBuilder安装步骤一 290
图C-2 WindowBuilder安装步骤二 291
图C-3 WindowBuilder安装步骤三 291
图C-4 WindowBuilder安装步骤四 292
图C-5 WindowBuilder安装步骤五 292
表格目录
表2-1 Java语言中的关键字 018
表2-2 原始数据类型 020
表2-3 整数类型 021
表2-4 Unicode字符表实例 023
表2-5 转义字符 025
表2-6 算术运算符 029
表2-7 移位运算符表示及实例 030
表2-8 位运算符表示及实例 030
表2-9 复合赋值运算符表示及实例 031
表2-10 关系运算符表示及实例 032
表2-11 逻辑运算符表示及实例 032
表2-12 运算符的优先级与结合性 033
表2-13 国际专利分类号(IPC)前14位的含义 045
表3-1 类访问权限与数据成员/成员方法访问权限关联 063
表4-1 继承中访问修饰符的特点 080
表5-1 学生成绩表 112
表5-2 二维数组实例 117
表5-3 String类的常用构造方法 122
表5-4 String类的常用成员方法 123
表5-5 StringBuffer类的构造方法 126
表5-6 StringBuffer类的常用成员方法 127
表5-7 五篇专利文献的信息 128
表6-1 Iterator接口的常用成员方法 133
表6-2 List接口的常用成员方法 133
表6-3 ArrayList类的构造方法 135
表6-4 Collections工具类的排序相关方法 137
表6-5 Set接口的常用成员方法 146
表6-6 HashSet类的构造方法 149
表6-7 Map接口的常用成员方法 158
表6-8 Map.Entry接口的常用成员方法 159
表7-1 图形设计包awt和swing的优缺点对比 166
表7-2 容器类的常用成员方法 168
表7-3 窗口类的常用成员方法 168
表7-4 布局管理器列表 171
表7-5 容器的默认布局管理器 171
表7-6 FlowLayout类的构造方法 172
表7-7 BorderLayout类的构造方法 175
表7-8 GridLayout类的构造方法 180
表7-9 CardLayout类的构造方法 183
表7-10 CardLayout类的常用成员方法 183
表7-11 BoxLayout类和Box类的构造方法 186
表7-12 Box类的常用成员方法 187
表8-1 事件适配器类与监听器接口的对应关系 199
表8-2 KeyListener接口和KeyAdapter适配器类的常用成员方法 200
表8-3 KeyEvent类的常用成员方法 200
表8-4 主要虚拟键码常量 201
表8-5 位置键的键码常量 201
表8-6 MouseListener、MouseMotionListener和MouseWheelListener接口和MouseAdapter类的常用成员方法 205
表8-7 MouseEvent类的常用成员方法 206
表8-8 MouseWheelEvent类的常用成员方法 206
表8-9 JScrollBar类的构造方法 210
表8-10 JScrollBar类的常用成员方法 211
表8-11 AdjustmentEvent类的常用成员方法 212
表8-12 AdjustmentEvent类中表征调整事件类型的静态常量 212
表8-13 JTabbedPane类的构造方法 216
表8-14 JTabbedPane类中表征选项卡位置和布局策略的静态常量 216
表8-15 JMenuBar类的常用成员方法 220
表8-16 JMenu类的构造方法 220
表8-17 JMenu类的常用成员方法 221
表8-18 JMenuItem类的构造方法 222
表8-19 JMenuItem类的常用成员方法 222
表8-20 KeyStroke类的常用静态方法 223
表8-21 JDialog类的常用构造方法 227
表8-22 JOptionPane对话框类型 227
表8-23 JOptionPane类中表征消息型对话框类型的静态常量 229
表8-24 JOptionPane类中表征确认型对话框类型的静态常量 230
表8-25 JOptionPane类中表征确认型对话框返回值的静态常量 230
表9-1 异常处理块的三种形式 244
表10-1 InputStream类的主要直接子类 257
表10-2 InputStream类的常用成员方法 259
表10-3 OutputStream类的主要直接子类 260
表10-4 OutputStream类的常用成员方法 261
表10-5 Reader类的常用成员方法 263
表10-6 Writer类的常用成员方法 264
表10-7 Reader类的主要直接子类 264
表10-8 Writer类的主要直接子类 266
表10-9 File类的构造方法 270
表10-10 File类的常用成员方法 270
表10-11 FileInputStream类的构造方法 272
表10-12 FileOutputStream类的构造方法 273
表10-13 FileInputStream类的常用成员方法 273
表10-14 FileOutputStream类的常用成员方法 273
表10-15 FileReader类的构造方法 275
表10-16 FileWriter类的构造方法 275
表10-17 ObjectInputStream类和ObjectOutputStream类的构造方法 277
你还可能感兴趣
我要评论
|