第1章Java概述 1
1.1 Java语言简介 1
1.1.1 Java的发展历史 1
1.1.2 Java语言的特点 2
1.1.3 Java运行机制 3
1.2 Java程序运行环境 4
1.2.1 JDK介绍 4
1.2.2下载和安装JDK 5
1.2.3配置JDK 6
1.3 Java的开发工具 7
1.3.1 MyEclipse概述 7
1.3.2 MyEclipse的配置 8
1.3.3使用MyEclipse开发应用程序 9
1.4 Java Application和Java Applet介绍 11
1.4.1 Application介绍 11
1.4.2 Applet介绍 13
1.5包 18
1.5.1创建包 18
1.5.2使用包 19
1.6 Java程序的基本要素 19
1.7编码规范 22
1.8 Java程序调试技巧 24
1.9项目案例:创建Hello World程序 26
1.10习题 28
1.11实践疑难解答 29
1.11.1在类中找不到主方法错误 29
1.11.2找不到或无法加载主类 30
第2章 简单数据类型及运算 32
2.1 Java基本数据类型 32
2.1.1整数类型 33
2.1.2浮点型 34
2.1.3字符型 34
2.1.4布尔类型 35
2.1.5数据类型间的转换 35
2.2变量与常量 36
2.2.1变量 37
2.2.2变量的作用域 37
2.2.3常量 37
2.3运算符与表达式 38
2.3.1算术运算符及表达式 38
2.3.2赋值运算符及表达式 39
2.3.3自增和自减运算符 40
2.3.4关系运算符及表达式 41
2.3.5逻辑运算符及表达式 41
2.3.6位运算符及表达式 42
2.3.7条件运算符及表达式 44
2.3.8运算符的优先级 45
2.4项目案例:打印超市购物清单 46
2.5习题 48
2.6实践疑难解答 50
2.6.1 Java数据类型的问题 50
2.6.2 Java数据类型的出错问题 51
第3章 流程控制 52
3.1条件语句 52
3.1.1简单的if条件语句 52
3.1.2 if-else条件语句 54
3.1.3 if-else if-else条件语句 55
3.1.4嵌套if语句 57
3.1.5 switch多分支语句 59
3.1.6包含break的switch语句 62
3.2循环语句 64
3.2.1 for循环语句 64
3.2.2 while循环语句 68
3.2.3 do-while循环语句 69
3.2.4 while循环与do-while循环的异同 71
3.3跳转语句 71
3.3.1 break语句 71
3.3.2 continue语句 73
3.3.3 return语句 75
3.4项目案例:打印出所有三位数的“水仙花数” 77
3.5习题 78
3.6实践疑难解答 80
3.6.1关于for循环语句问题 80
3.6.2关于Java的switch语句的一个问题 81
第4章 数组类型 83
4.1一维数组 83
4.1.1创建一维数组 83
4.1.2初始化一维数组 84
4.1.3一维数组的应用 84
4.2多维数组 85
4.2.1创建多维数组 86
4.2.2初始化多维数组 86
4.2.3访问多维数组中的元素 87
4.3复制数组 89
4.3.1使用copyOf()方法和copyOfRange()方法 89
4.3.2使用arraycopy()方法 91
4.3.3使用clone()方法 92
4.4数组排序 92
4.4.1选择排序 93
4.4.2冒泡排序 94
4.4.3快速排序 95
4.5搜索数组 95
4.6项目案例:实现学生成绩查询功能 97
4.7习题 99
4.8实践疑难解答 101
4.8.1能不能向数组中添加更多的元素 101
4.8.2遍历数组时提示ArraylndexOutOf BoundException 101
4.8.3获取二维数组的行数与列数 102
4.8.4对二维数组进行排序 102
第5章 字符串 104
5.1类String字符串 104
5.1.1直接使用字符串常量创建字符串 104
5.1.2使用new关键字创建字符串 105
5.2字符串的常用方法 106
5.3字符串的基本操作 106
5.3.1获取字符串的长度 107
5.3.2转换字符串的大小写 107
5.3.3去掉字符串的首尾空格 107
5.3.4比较字符串的大小 107
5.3.5字符串查找 108
5.3.6字符串分割 111
5.3.7字符串截取 112
5.3.8字符串替换 112
5.3.9字符串连接 113
5.4类StringBuffer字符串 115
5.4.1 StringBuffer类的构造方法 115
5.4.2 StringBuffer类的常用方法 115
5.5正则表达式 119
5.6项目案例:根据用户输入数值的个数打印不同的信息 121
5.7习题 123
5.8实践疑难解答 126
5.8.1如何处理特殊的分割符 126
5.8.2可不可以在分割字符串时使用多个分割符 127
5.8.3使用equals()方法比较两个相同的StringBuffer对象 128
第6章 类与对象 129
6.1面向对象概述 129
6.1.1对象概述 129
6.1.2面向对象的核心特性 130
6.2类结构 133
6.2.1类的定义 133
6.2.2成员变量的定义 135
6.2.3成员方法的定义 136
6.2.4构造方法 139
6.2.5 main()方法 142
6.2.6方法的可变参数 144
6.2.7 this关键字 145
6.3对象 146
6.3.1对象的创建 146
6.3.2访问对象的属性和行为 148
6.3.3对象的销毁 150
6.4常用修饰符 151
6.4.1 static静态修饰符 151
6.4.2 final修饰符 154
6.5项目案例:完成消息的发送功能 157
6.6习题 160
6.7实践疑难解答 162
6.7.1 Java类和对象的问题 162
6.7.2类与对象的区别 163
第7章 深入面向对象编程 165
7.1类的封装 165
7.2类的继承 167
7.2.1简单继承 167
7.2.2单继承 170
7.2.3使用super关键字 171
7.2.4对象类型转换 173
7.2.5强制对象类型转换 174
7.3方法重载 175
7.4方法重写 176
7.5抽象类与接口 178
7.5.1抽象类 178
7.5.2接口 180
7.6项目案例:实现购物清单的打印 185
7.7习题 187
7.8实践疑难解答 189
7.8.1 Java中的继承问题 189
7.8.2 Java继承的运行顺序问题 190
7.8.3 Java多态问题 191
第8章 内部类与匿名类 193
8.1内部类概述 193
8.2内部类 194
8.2.1实例内部类 195
8.2.2静态内部类 197
8.2.3局部内部类 198
8.3匿名类 199
8.4习题 201
8.5实践疑难解答 202
8.5.1外部类可以称为内部类的父类吗 202
8.5.2局部内部类所在的方法返回类型问题 203
8.5.3局部内部类只能访问所在方法中的final参数与变量 203
8.5.4 Outer$1Inner.class这种文件名怎么理解 204
第9章 异常处理 205
9.1异常的基本概述 205
9.2异常类型 206
9.3异常处理 208
9.3.1使用try-catch语句捕获异常 208
9.3.2使用多重catch语句捕获异常 210
9.3.3使用try-catch-finally语句捕获异常 211
9.4声明异常和抛出异常 214
9.4.1 throws声明异常 214
9.4.2 throw抛出异常 215
9.5自定义异常 217
9.6项目案例:模拟ATM取款业务办理 219
9.7习题 221
9.8实践疑难解答 226
9.8.1 try-catch能嵌套使用吗 226
9.8.2捕获异常时编译不通过 226
9.8.3 try-finally执行结果 227
9.8.4 try-finally语句中包含return语句 228
第10章Java常用工具类 230
10.1 Object类 230
10.2系统类System 233
10.2.1 System类中的成员变量 233
10.2.2 System类中的成员方法 234
10.3数学类Math 237
10.3.1三角函数方法 237
10.3.2指数函数方法 238
10.3.3最大值、最小值和绝对值函数方法 239
10.3.4取整函数方法 239
10.4包装类 240
10.4.1基本数据类型对应的包装类 240
10.4.2 Integer类 241
10.4.3 Float类 243
10.4.4 Double类 244
10.4.5 Character类 245
10.5日期操作类 249
10.5.1 java.util.Date类 249
10.5.2 java.util.Calendar类 251
10.6格式化日期类 255
10.6.1 DateFormat类 255
10.6.2 SimpleDateFormat类 257
10.7 Random类 258
10.8项目案例:计算上完课程后的日期 260
10.9习题 262
10.10实践疑难解答 264
10.10.1继承Object类的问题 264
10.10.2 Java中Random问题 265
10.10.3 Integer.parseInt()和Integer.valueOf()区别 266
第11章Java的输入/输出流 268
11.1输入/输出流概述 268
11.1.1字节流 268
11.1.2字符流 269
11.1.3预定义流 270
11.2字节流 272
11.2.1字节输入流InputStream 272
11.2.2字节输出流OutputStream 273
11.2.3字节数组输入流ByteArray-InputStream 274
11.2.4字节数组输出流ByteArray-OutputStream 275
11.2.5文件字节输入流FileInputStream 276
11.2.6文件输出流FileOutputStream 278
11.3字符流 280
11.3.1字符输入流Reader 280
11.3.2字符输出流Writer 281
11.3.3字符文件输入流FileReader 282
11.3.4字符文件输出流FileWriter 283
11.3.5字符缓冲区输入流BufferedReader 285
11.3.6字符缓冲区输出流BufferedWriter 286
11.4 File类 287
11.5 RandomAccessFile类 289
11.6项目案例:存储商品信息并读取 291
11.7习题 294
11.8实践疑难解答 295
11.8.1读取文件内容时出现中文乱码问题 295
11.8.2使用System.in接收汉字时,拼音也会接收 296
第12章 集合框架 297
12.1集合简介 297
12.1.1集合概述 297
12.1.2 Collection接口 299
12.2无序列表——Set集合 299
12.2.1 HashSet类 299
12.2.2 TreeSet类 301
12.3有序列表——List集合 304
12.3.1 ArrayList类 304
12.3.2 LinkedList类 305
12.4映射——Map 307
12.5集合辅助类Collections 309
12.5.1集合排序 309
12.5.2集合反序 310
12.5.3替换所有的元素 311
12.5.4复制集合 312
12.6集合的高级应用——泛型 314
12.7项目案例:部门管理系统 315
12.8习题 319
12.9实践疑难解答 320
12.9.1 List集合的remove()方法使用问题 320
12.9.2 Set集合里面怎么可以添加重复元素 321
第13章Swing程序开发 323
13.1图形对象概述 323
13.2 Swing容器和组件的层次 324
13.2.1 JComponent类层次结构图 324
13.2.2 Swing包 325
13.2.3组件的分类 325
13.3窗口和面板 327
13.3.1 JFrame窗口 327
13.3.2 JPanel面板 329
13.4 Swing基本组件 330
13.4.1按钮组件JButton 330
13.4.2标签组件JLabel 331
13.4.3单行文本框组件——JTextField 333
13.4.4多行文本域组件——JTextArea 334
13.4.5复选框组件——JCheckBox 335
13.4.6单选按钮组件——JRadioButton 337
13.4.7下拉列表组件——JComboBox 338
13.5 JTabbedPane页签面板 342
13.6 JTable表格 344
13.7 JTree树 346
13.8 JFileChooser文件选择器 350
13.9布局管理器 352
13.9.1 BorderLayout管理器 352
13.9.2 FlowLayout管理器 354
13.9.3 CardLayout管理器 355
13.9.4 GridLayout管理器 356
13.9.5 GridBagLayout管理器 358
13.9.6 BoxLayout管理器和Box容器 360
13.10对话框 362
13.10.1消息对话框 362
13.10.2确认对话框 363
13.10.3输入对话框 364
13.10.4选项对话框 365
13.11项目案例:制作计算器 366
13.12习题 369
13.13实践疑难解答 371
13.13.1 JButton按钮如何响应回车事件 371
13.13.2单击对话框中的【否】按钮实现退出程序 371
第14章JDBC数据库编程 372
14.1 JDBC简介 372
14.1.1 JDBC的工作机制 372
14.1.2 JDBC API结构 373
14.1.3 JDBC驱动 373
14.2 JDBC连接数据库的基本步骤 376
14.3 JDBC主要的接口和类 378
14.3.1 Connection接口 378
14.3.2 DriverManager类 378
14.3.3 Statement接口 379
14.3.4 PreparedStatement接口 382
14.3.5 ResultSet接口 384
14.4项目案例:学生管理系统 387
14.5习题 394
14.6实践疑难解答 395
14.6.1中文乱码问题 395
14.6.2如何从ResultSet对象中获取对应属性 395
第15章 进销存管理系统 397
15.1系统分析与设计 397
15.1.1系统功能结构 397
15.1.2系统流程图 397
15.2数据库设计 399
15.3主窗体设计 402
15.3.1创建主窗体 402
15.3.2创建导航面板 404
15.4公共模块设计 407
15.4.1编写Item类 407
15.4.2编写Dao公共类 408
15.5基础信息模块设计 413
15.5.1添加客户 413
15.5.2修改与删除客户 417
15.6进货管理模块设计 422
15.6.1进货单 422
15.6.2进货退货 428
15.7客户查询模块设计 432
15.8库存管理——价格调整 436
15.9系统管理模块设计 440
15.9.1更新密码 440
15.9.2权限管理 445