Java学习手册的目 录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习手册的目 录相关的知识,希望对你有一定的参考价值。

参考技术A

第1篇 基础篇
第1章 Java开发前奏 16
1.1 Java简介 17
1.1.1 什么是Java语言 17
1.1.2 与其他语言相比Java的优势 17
1.1.3 计算机语言中Java近几年的排行 18
1.1.4 Java的发展史 18
1.1.5 Java成功案例 19
1.2 Java特性 20
1.2.1 Java的应用领域 20
1.2.2 Java语法的特征 21
1.3 怎么学Java 22
1.3.1 Java程序员的成长之路 22
1.3.2 如何学好Java 23
1.4 本章小结 23
第2章 搭建Java开发环境 24
2.1 搭建Java开发环境 25
2.1.1 下载JDK 25
2.1.2 安装JDK 27
2.1.3 Windows系统下配置和测试JDK 27
2.2 Java程序的开发过程 29
2.3 一个简单的Java程序 30
2.3.1 构建Java程序 30
2.3.2 编译和运行Java程序 31
2.3.3 使用Java核心API文档 31
2.4 实战练习 32
2.4.1 下载JRE 32
2.4.2 将JDK安装到D盘 33
2.4.3 编写程序输出小猪脸图像 33
2.5 本章小结 34
第3章 扎实Java语言基本语法 35
3.1 使用常量与变量 36
3.1.1 常量的概念及使用 36
3.1.2 变量的概念及命名规则 37
3.1.3 变量的有效范围 38
3.2 认识基本的数据类型 41
3.2.1 整数类型 41
3.2.2 浮点类型 43
3.2.3 字符类型 43
3.2.4 布尔类型 44
3.2.5 基本数据类型间的转换 44
3.3 熟练运用Java运算符 45
3.3.1 赋值运算符 46
3.3.2 算术运算符 46
3.3.3 关系运算符 47
3.3.4 逻辑运算符 48
3.3.5 位运算符 50
3.3.6 其他运算符 53
3.3.7 运算符的优先级别及结合性 55
3.3.8 情景应用一:加密可以这样简单 55
3.3.9 情景应用二:位运算实现
3.3.9 两个变量值的互换 56
3.4 了解Java标识符与关键字 56
3.4.1 标识符 57
3.4.2 关键字 57
3.5 编码规范 57
3.5.1 Java命名规范 58
3.5.2 代码编写规则 58
3.6 Java程序的注释 59
3.6.1 单行注释 59
3.6.2 使用多行注释 59
3.6.3 文档注释的使用 60
3.7 实战练习 60
3.7.1 获取字符的unicode编码 60
3.7.2 计算长方形的周长 60
3.7.3 类型转换实例 61
3.8 本章小结 62
第4章 掌握算法和流程控制 63
4.1 认识算法 64
4.1.1 什么是算法 64
4.1.2 算法的描述方法 64
4.2 运用分支语句 65
4.2.1 简单的if条件语句 65
4.2.2 if-else条件语句 66
4.2.3 if-else-if多分支语句 68
4.2.4 switch多分支语句 69
4.2.5 if语句和switch语句的区别 72
4.2.6 情景应用一:根据消费金额计算折扣 73
4.2.7 情景应用二:判断某一年是否为闰年 74
4.3 学习循环语句 74
4.3.1 for循环语句 74
4.3.2 while循环语句 76
4.3.3 do-while循环语句 78
4.3.4 foreach语句 80
4.3.5 各循环语句间的区别 81
4.4 学习跳转语句 81
4.4.1 break跳转语句 81
4.4.2 continue跳转语句 82
4.4.3 return跳转语句 82
4.5 实战练习 83
4.5.1 判断用户输入月份所属的季节 83
4.5.2 输出乘法表 83
4.5.3 计算阶乘 84
4.6 本章小结 84
第5章 使用Eclipse开发工具 85
5.1 为什么要使用Eclipse开发工具 86
5.2 Eclipse的工作台 86
5.2.1 Eclipse工作台概述 86
5.2.2 透视图 87
5.2.3 编辑器 88
5.2.4 熟悉Eclipse的菜单栏和工具栏 89
5.3 怎样编写Java程序 90
5.3.1 新建Java项目 90
5.3.2 新建Java类 91
5.3.3 编写Java代码 93
5.3.4 运行程序 94
5.3.5 保存并关闭Java项目 94
5.4 探秘Eclipse资源管理 95
5.4.1 导入Java类 95
5.4.2 导入Java项目 96
5.4.3 导出Java项目 97
5.5 本章小结 98
第6章 探秘面向对象程序设计 99
6.1 什么是面向对象程序设计 100
6.1.1 面向对象程序设计的概述 100
6.1.2 面向对象程序设计的特点 101
6.2 解密类和对象 102
6.2.1 定义类 103
6.2.2 成员变量和局部变量 104
6.2.3 构造方法的概念及用途 105
6.2.4 创建对象 106
6.2.5 使用对象 107
6.2.6 销毁对象 108
6.3 使用包 108
6.3.1 包的概念 108
6.3.2 创建包 108
6.3.3 使用包中的类 109
6.4 了解Java中的继承关系 110
6.4.1 继承的概念 110
6.4.2 创建子类 110
6.4.3 继承的使用原则 111
6.4.4 使用this关键字 112
6.4.5 使用super关键字 112
6.5 认识多态技术 113
6.5.1 方法的重载 114
6.5.2 方法的覆盖 115
6.6 抽象类 116
6.7 final类与final方法 119
6.7.1 final类 119
6.7.2 final方法 120
6.8 掌握Java中的接口 120
6.8.1 定义接口 121
6.8.2 实现接口 121
6.9 情景应用 123
6.9.1 情景应用一:定义不能重写的方法 123
6.9.2 情景应用二:温度转换 124
6.10 实战练习 125
6.10.1 定义员工类 125
6.10.2 多态方式计算图像面积 125
6.10.3 求解汉诺塔问题 126
6.11 本章小结 126
第7章 初探数组 127
7.1 一维数组 128
7.1.1 声明一维数组 128
7.1.2 创建一维数组 128
7.1.3 初始化一维数组 130
7.1.4 使用一维数组 131
7.2 二维数组 133
7.2.1 声明二维数组 133
7.2.2 创建二维数组 133
7.2.3 初始化二维数组 135
7.2.4 使用二维数组 135
7.3 操作数组 136
7.3.1 复制数组 137
7.3.2 排序数组 138
7.3.3 比较数组 139
7.3.4 搜索数组 140
7.3.5 填充数组 141
7.3.6 传递数组 142
7.4 实战练习 143
7.4.1 使用冒泡排序法对数组进行排序 143
7.4.2 将二维数组中的行列互换 144
7.5 本章小结 144
第2篇 核心篇
第8章 字符串处理 146
8.1 初识字符串 147
8.1.1 字符串常量 147
8.1.2 声明字符串变量 147
8.1.3 创建字符串 147
8.2 连接字符串 149
8.2.1 字符串与字符串的连接 149
8.2.2 字符串与其他类型数据的连接 150
8.3 字符串操作 151
8.3.1 比较字符串 152
8.3.2 获取字符串的长度 154
8.3.3 字符串的大小写转换 154
8.3.4 查找字符串 155
8.3.5 获取字符串的子字符串 157
8.3.6 替换或去除字符串中的空格 157
8.3.7 分割字符串 158
8.4 格式化字符串 159
8.4.1 常规类型的格式化 159
8.4.2 日期和时间字符串格式化 161
8.4.3 情景应用一:格式化当前日期 165
8.4.4 情景应用二:获取字符串中的汉字个数 166
8.5 使用StringBuilder类 167
8.5.1 创建字符串生成器 167
8.5.2 字符串生成器的应用 168
8.6 使用正则表达式 170
8.7 实战练习 172
8.7.1 将数字格式化为货币字符串 172
8.7.2 判断字符串中是否包含有数字字符 172
8.7.3 验证IP地址是否有效 173
8.8 本章小结 173
第9章 集合类 174
9.1 集合类概述 175
9.2 Collection接口 175
9.2.1 addAll()方法 175
9.2.2 removeAll()方法 176
9.2.3 retainAll()方法 177
9.2.4 containsAll()方法 178
9.2.5 toArray(T[] t)方法 179
9.3 List集合 179
9.3.1 List接口的实现类 180
9.3.2 List的用法 180
9.3.3 情景应用:List集合传递学生信息 182
9.4 Set集合 183
9.4.1 使用HashSet类 183
9.4.2 使用TreeSet类 185
9.5 Map集合 187
9.5.1 Map接口 187
9.5.2 Map接口的实现类 188
9.5.3 情景应用:实现省市级联输出 189
9.6 实战练习 190
9.6.1 去除List集合中的重复值 190
9.6.2 使用Map集合保存电话信息 191
9.7 本章小结 191
第10章 使用异常处理机制 192
10.1 什么是异常处理 193
10.2 常见异常列表 193
10.3 Java异常处理 194
10.3.1 错误 194
10.3.2 捕获异常 195
10.4 内置异常类 196
10.4.1 Error类 197
10.4.2 Exception类 197
10.5 自定义异常 199
10.6 在方法中抛出异常 200
10.6.1 使用throws关键字抛出异常 200
10.6.2 使用throw关键字抛出异常 201
10.7 异常处理使用原则 202
10.8 实战练习 202
10.8.1 自定义异常类 202
10.8.2 使用try-catch语句捕获异常 203
10.8.3 捕捉求负数的公约数异常 203
10.9 本章小结 204
第11章 掌握Java的I/O技术 205
11.1 Java的I/O处理方式 206
11.1.1 I/O的基本模式 206
11.1.2 Java提供的流类 206
11.1.3 输入流 207
11.1.4 输出流 208
11.2 以byte为数据单位的流类 208
11.2.1 InputStream类 209
11.2.2 OutputStream类 210
11.3 以char为数据单位的流类 211
11.3.1 Reader类 211
11.3.2 Writer 212
11.4 常用I/O处理方式 213
11.4.1 文件类 214
11.4.2 文件的字节输入输出流 216
11.4.3 文件的字符输入输出流 218
11.4.4 带缓存的输入输出流 221
11.4.5 对象序列化 223
11.4.6 情景应用一:文件锁定 225
11.4.7 情景应用二:将用户输入的内容保存到文本文件 225
11.5 对文件及文件夹进行操作 226
11.5.1 复制文件 226
11.5.2 复制文件夹 227
11.5.3 删除文件 229
11.5.4 分行写入文件 229
11.6 实战练习 230
11.6.1 字符的简单加密与解密 230
11.6.2 将用户信息写入到文件 231
11.6.3 获取磁盘中所有的文件名 231
11.7 本章小结 232
第12章 精通多线程技术 233
12.1 线程概述 234
12.1.1 进程 234
12.1.2 线程 234
12.2 线程的创建 235
12.2.1 继承Thread类 236
12.2.2 实现Runnable接口 237
12.2.3 两种创建线程方式的比较 239
12.3 线程的生命周期 239
12.4 线程的优先级及执行顺序 240
12.4.1 线程的优先级 240
12.4.2 线程的执行顺序 241
12.5 线程的控制 244
12.5.1 线程的启动 244
12.5.2 线程的挂起 244
12.5.3 结束线程 248
12.5.4 线程组 249
12.5.5 情景应用一:使用守护线程 249
12.5.6 情景应用二:线程的插队 250
12.6 线程的同步 251
12.6.1 线程安全 252
12.6.2 线程同步机制 253
12.7 线程通信 254
12.8 多线程产生死锁 258
12.9 实战练习 258
12.9.1 利用线程定时输出信息 258
12.9.2 查看JVM中的线程名 259
12.9.3 查看线程的状态 259
12.10 本章小结 260
第13章 枚举与泛型 261
13.1 使用枚举类型 262
13.1.1 使用枚举类型设置常量 262
13.1.2 深入了解枚举类型 264
13.1.3 使用枚举类型的优势 269
13.1.4 情景应用一:遍历枚举接口的元素 269
13.1.5 情景应用二:选择合适的枚举元素 270
13.2 使用泛型 270
13.2.1 回顾“向上转型”与“向下转型” 271
13.2.2 定义泛型类 272
13.2.3 泛型的常规用法 273
13.2.4 泛型的高级用法 276
13.2.5 泛型总结 278
13.3 实战练习 278
13.3.1 判断枚举类型的值 278
13.3.2 使用通配符定义泛型类 279
13.4 本章小结 279
第3篇 高级篇
第14章 Swing基础知识 282
14.1 Swing概述 283
14.1.1 Swing特点 283
14.1.2 Swing包 283
14.1.3 常用Swing组件概述 284
14.2 常见窗体 284
14.2.1 JFrame窗体 284
14.2.2 JDialog窗体 286
14.3 掌握基本组件 287
14.3.1 标签组件 288
14.3.2 按钮组件 289
14.3.3 文本组件 292
14.3.4 列表组件 294
14.3.5 情景应用一:实现按钮关键字描红 297
14.3.6 情景应用二:鼠标经过时按钮放大 298
14.4 向窗体中添加容器 299
14.4.1 JPanel面板的应用 299
14.4.2 JScrollPane面板的应用 300
14.4.3 分割面板的应用 301
14.4.4 选项卡面板的应用 303
14.5 选择合理的布局方式 305
14.5.1 灵活指定组件位置的绝对布局 305
14.5.2 窗体默认的边界布局 306
14.5.3 奇妙的网格布局 307
14.5.4 按指定方向摆放组件的流式布局 308
14.6 常用的事件监听器 309
14.6.1 事件监听器概述 309
14.6.2 事件监听器 310
14.6.3 动作事件(ActionEvent)监听器 311
14.6.4 焦点事件(FocusEvent)监听器 312
14.7 实战练习 313
14.7.1 简单的计数器 313
14.7.2 通过单选按钮选择显示图片 313
14.7.3 为文本域设置背景 314
14.8 本章小结 314
第15章 JDBC技术 315
15.1 了解数据库基础知识 316
15.1.1 生活中的数据库 316
15.1.2 了解数据库的特点及分类 316
15.2 JDBC技术 317
15.2.1 什么是JDBC技术 317
15.2.2 为什么要在项目中添加数据库驱动 317
15.3 认识JDBC中不可缺少的类与接口 318
15.3.1 管理数据库驱动类DriverManager 318
15.3.2 数据库连接接口Connection 318
15.3.3 发送SQL语句接口Statement 319
15.3.4 可执行动态SQL的接口PreparedStatement 319
15.3.5 查询结果集接口ResultSet 320
15.4 操作数据库的步骤 320
15.4.1 加载JDBC驱动程序 321
15.4.2 创建数据库连接 321
15.4.3 执行SQL语句 322
15.4.4 获得查询结果 323
15.4.5 关闭连接 323
15.5 常见的数据操作 324
15.5.1 添加数据 324
15.5.2 修改数据 325
15.5.3 删除数据 326
15.5.4 查询数据 326
15.5.5 使用预处理语句 328
15.6 实战练习 330
15.6.1 查询SQL Server数据表中前三条数据 330
15.6.2 查询编程词典9月份的总销售量 331
15.6.3 笛卡儿乘积查询 332
15.7 本章小结 332
第16章 Swing高级组件 333
16.1 为窗体添加菜单 334
16.1.1 创建菜单栏 334
16.1.2 创建菜单 334
16.1.3 创建菜单项 335
16.1.4 创建弹出式菜单 337
16.1.5 创建个性化菜单 337
16.2 实现为窗体添加工具栏 340
16.2.1 创建工具栏 340
16.2.2 为工具栏添加工具按钮 341
16.3 使用对话框 342
16.3.1 打开本地文件的文件对话框 342
16.3.2 为用户提供信息对话框 345
16.3.3 色彩斑斓的颜色选择对话框 346
16.3.4 实现确认操作的确认对话框 347
16.4 表格组件 349
16.4.1 实现创建表格 349
16.4.2 表格模型 350
16.4.3 维护表格模型 351
16.5 使用系统托盘 354
16.5.1 实现获取系统托盘 354
16.5.2 怎样为系统托盘添加图标 355
16.5.3 添加弹出菜单 355
16.6 实战练习 357
16.6.1 明日版QQ界面设计 357
16.6.2 设计选择日期的对话框 357
16.6.3 在表格中显示销售记录 358
16.7 本章小结 359
第17章 GUI事件处理机制 360
17.1 掌握窗体事件 361
17.1.1 捕获窗体焦点变化事件 361
17.1.2 捕获窗体状态变化事件 362
17.1.3 捕获其他窗体事件 363
17.1.4 情景应用一:创建总显示在最上方的窗体 365
17.1.5 情景应用二:创建内部子窗体 365
17.2 掌握鼠标操作 366
17.2.1 鼠标事件监听器 366
17.2.2 鼠标事件处理 367
17.3 掌握键盘控制事件 368
17.3.1 键盘事件监听器 368
17.3.2 键盘事件处理 369
17.4 选项事件 371
17.5 表格模型事件 372
17.6 实战练习 375
17.6.1 定义只能输入整数或小数的文本框 375
17.6.2 设置文本对齐方式 375
17.7 本章小结 376
第18章 网络程序设计 377
18.1 网络程序设计基础 378
18.1.1 局域网和广域网 378
18.1.2 网络协议 378
18.2 端口与套接字 379
18.2.1 端口 379
18.2.2 套接字 380
18.3 学习TCP编程原理 380
18.3.1 什么是TCP协议 380
18.3.2 掌握TCP编程的常用类 381
18.3.3 如何编写TCP程序 384
18.4 学习UDP编程原理 385
18.4.1 什么是UDP协议 386
18.4.2 掌握UDP编程的常用类 386
18.4.3 如何编写UDP程序 387
18.5 实战练习 390
18.5.1 聊天室 390
18.5.2 获取主机名、主机地址和本机地址 390
18.5.3 向客户机发送信息 391
18.6 本章小结 392
第4篇 实战篇
第19章 进销存管理系统 394
19.1 需求分析 395
19.1.1 需求分析 395
19.1.2 可行性分析 395
19.2 系统设计 395
19.2.1 项目规划 395
19.2.2 功能结构分析 396
19.3 数据库设计 396
19.3.1 E-R图 396
19.3.2 数据表概要说明 398
19.3.3 主要数据表的结构 399
19.4 系统登录模块设计 401
19.4.1 登录功能设计 401
19.4.2 系统登录模块设计 401
19.5 程序主界面的设计 404
19.5.1 创建主窗口 404
19.5.2 初始化程序主界面的initialize()方法 405
19.5.3 添加菜单和工具按钮的方法 406
19.5.4 创建Action对象的addFrameAction()方法 408
19.5.5 获取功能窗体的getIFrame()方法 410
19.6 基础信息模块设计 410
19.6.1 商品信息管理模块设计 410
19.6.2 商品添加功能设计 411
19.6.3 设置组件布局位置的
19.6.3 setupComponent()方法 414
19.6.4 商品修改与删除功能设计 414
19.7 进货管理模块设计 417
19.7.1 进货单管理功能设计 417
19.7.2 初始化表格的
14.3.5 initTable()方法 421
19.7.3 初始化商品下拉选择框的initSpBox()方法 421
19.7.4 初始化进货单窗体的initTasks类 422
19.7.5 初始化进货票号文本框的initPiaoHao()方法 423
19.8 销售管理模块设计 423
19.8.1 销售单管理功能设计 423
19.8.2 初始化销售单窗体的initTasks类 425
19.9 库存管理模块设计 426
19.9.1 库存盘点功能设计 426
19.9.2 库存价格调整功能设计 429
19.10 查询统计模块设计 430
19.10.1 销售排行功能设计 430
19.10.2 执行销售排行功能的
14.3.5 事件监听器 432
19.11 系统设置模块设计 432
19.11.1 操作员管理 432
19.11.2 权限管理 435
19.12 数据库模块 437
19.12.1 数据库连接 437
19.12.2 获取用户信息的
14.3.5 getUser()方法 438
19.12.3 添加商品信息的addSp()方法 439
19.12.4 获取所有商品信息的getSpInfos()方法 439
19.12.5 添加入库信息的insertRukuInfo()方法 440
19.12.6 获取最大入库编号的getRuKuMainMaxId()
14.3.5 方法 441
19.12.7 更新用户信息的updateUser()方法 442
19.13 本章小结 442
第20章 企业内部通信系统 443
20.1 系统分析 444
20.1.1 需求分析 444
20.1.2 可行性分析 444
20.1.3 编写项目计划书 445
20.2 系统设计 447
20.2.1 系统目标 447
20.2.2 系统功能结构 447
20.2.3 数据库设计 447
20.2.4 系统预览 449
20.2.5 文件夹组织结构 450
20.3 主窗体设计 450
20.3.1 创建主窗体 451
20.3.2 记录窗体位置 454
20.4 公共模块设计 455
20.4.1 数据库操作类 455
20.4.2 系统工具类 460
20.5 系统托盘模块设计 464
20.5.1 系统托盘模块概述 464
20.5.2 系统托盘模块技术分析 464
20.5.3 系统托盘模块实现 465
20.6 系统工具模块设计 466
20.6.1 系统工具模块概述 466
20.6.2 系统工具模块技术分析 467
20.6.3 系统工具模块实现 467
20.7 用户管理模块设计 472
20.7.1 用户管理模块概述 472
20.7.2 用户管理模块技术分析 472
20.7.3 用户管理模块实现 473
20.8 通信模块设计 477
20.8.1 通信模块概述 477
20.8.2 通信模块技术分析 478
20.8.3 通信模块实现 478
20.9 开发技巧与难点分析 482
20.10 使用JDK 6新增的系统托盘 482
20.11 本章小结 483
附录A 专业术语表 484

java学习中,DVD管理系统纯代码(java 学习中的小记录)

java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星)

 

class DvdMain{

    public static void main (String[] args){

        DvdMgr dvd = new DvdMgr();
        //初始化dvd
        dvd.initial();

        //开始进入切换菜单
        dvd.startMenu();
    }
}

 

1 class DvdSet {
2 
3     //定义三个属性
4     String[] name = new String[50]; // 为保证数组足够大
5     String[] date = new String[50];// 借书的时间  
6     int[]    state = new int[50];  // 借书的状态 , 0表示借出 ,1.表示可以借。
7 }

 

  1 import java.util.*;
  2 import java.text.*;
  3 class DvdMgr {
  4     
  5     //创建一个DvdSet对象
  6     DvdSet dvd = new DvdSet();    
  7     
  8     //1.第一个方法初始化三个DVD数据
  9     public void initial(){
 10         //初始化三个Dvd
 11          dvd.name[0]= "罗马假日";
 12            dvd.state[0]=0;
 13          dvd.count[0] = 30;
 14           dvd.date[0]= "2016-11-18";
 15           dvd.name[1]="风声鹤唳"; 
 16                dvd.state[1]=1;
 17                dvd.name[2]= "浪漫满屋";
 18                dvd.state[2]=1; 
 19          dvd.count[2] = 10;
 20     }
 21 
 22     //2.实现一个菜单切换
 23     public void startMenu() {
 24 
 25         System.out.println("*********************************");
 26         System.out.println("******欢迎使用迷你DVD管理器******");
 27         System.out.println("******       1.新增DVD     ******");
 28         System.out.println("******       2.查看DVD     ******");
 29         System.out.println("******       3.删除DVD     ******");
 30         System.out.println("******       4.借出DVD     ******");
 31         System.out.println("******       5.归还DVD     ******");
 32         System.out.println("******       6.DVD排行榜   ******");
 33         System.out.println("******       7.退出        ******");
 34         System.out.println("*********************************");
 35 
 36         Scanner input = new Scanner(System.in);
 37         System.out.println("请输入您的操纵:");
 38         int option = input.nextInt();
 39 
 40         switch(option){
 41 
 42             case 1 :
 43                 addDvd();
 44                 returnMenu();
 45                 break;
 46 
 47             case 2 :
 48                 searchDvd();
 49                 returnMenu();    
 50                 break;
 51             case 3 :
 52                 deleteDvd();
 53                 returnMenu();
 54                 break;
 55             case 4 :
 56                 lendDvd();
 57                 returnMenu();
 58                 break;
 59             case 5 :
 60                 returnDvd();
 61                 returnMenu();
 62                 break;
 63             case 6:
 64                 list();
 65                 returnMenu();
 66                 
 67                 break;
 68             case 7:
 69                 System.out.println("谢谢使用,欢迎下次在来");
 70                 break;
 71             default:
 72                 System.out.println("输入异常,程序已经吓崩溃,正在重启中...");
 73                 break;
 74 
 75         }
 76         
 77     }
 78 
 79     //3.返回菜单
 80     public void returnMenu() {
 81         System.out.println("输入0返回:");
 82         Scanner input = new Scanner(System.in);
 83 
 84         if(input.nextInt() == 0){
 85             
 86             //在此进入菜单切换
 87             startMenu();
 88         }else {
 89         
 90             System.out.println("输入异常,请从输入:");
 91             returnMenu();  // 递归调用。
 92         }
 93         
 94     }
 95 
 96     //4.查看的功能
 97     public void searchDvd(){
 98         System.out.println("******欢迎进入查看页面*****");
 99         //\\t Tap
100         System.out.println("序号\\t名称\\t\\t状态\\t借出时间\\t");
101         for(int i=0;i<dvd.name.length ; i++){
102             if(dvd.name[i] == null){
103                 
104                 break;
105             }else if (dvd.state[i] == 0){
106                 //代表已经借出
107                 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t已借出\\t"+dvd.date[i]);
108             }else if(dvd.state[i] == 1){
109 
110                 //代没有借出
111                 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t可借\\t");
112             }
113         }
114 
115         System.out.println("**************************************");
116             
117     }
118 
119     //5.新增Dvd
120     public void addDvd(){
121         System.out.println("******欢迎进入添加页面*****");
122         System.out.println("请输入您要添加的Dvd:");
123         Scanner input = new Scanner(System.in);
124         String name = input.next();
125         //将新增的内容放到最后
126         for(int i = 0;i<dvd.name.length;i++){
127             
128             if(dvd.name[i] == null){ //到最后去了。
129 
130                 dvd.name[i] = name;
131                 dvd.state[i] = 1;
132                 System.out.println("<<"+name+">>dvd添加成功");
133                 break;
134             }
135         }
136         
137     }
138 
139     //6.删除dvd
140 
141     public void deleteDvd(){
142         System.out.println("******欢迎进入删除页面*****");
143         System.out.println("请输入您要删除的Dvd名称:");
144         Scanner input = new Scanner(System.in);
145         String name = input.next();
146 
147         //1.没有找到  :  提示没有找到 请重新输入
148         //2.找到 :
149             //1.已经借出去 : 不能够删除
150             //2.没有借出去 : 删除
151 
152         for(int i = 0;i<dvd.name.length;i++){
153             //查找是否存在
154             if(dvd.name[i] != null){
155 
156                 if(dvd.name[i].equalsIgnoreCase(name)){ //已经找到
157 
158                     //是否已经被借出
159                     if(dvd.state[i] == 0){ // 借出
160                         System.out.println("《"+name+"》已经被借出");
161                         break;
162                     }else if(dvd.state[i] == 1) {
163 
164                         //没有借出需要删除
165                         //思路 : 1.用后面一个替换前面的。
166                             //2.把最后面多余的地方赋值为null.
167                         
168 
169                         for(int j = i ;j<dvd.name.length;j++){
170                             
171                             //做交换
172                             if(dvd.name[j +1] != null){
173                                 dvd.name[j] = dvd.name[j+1];
174                                 dvd.state[j] = dvd.state[j+1];
175 
176                             }else{
177                                 //清空最后一个值
178                                 dvd.name[j] = null;
179                                 dvd.date[j] = null;
180                                 break;
181                             }
182                             
183                         }
184 
185                         System.out.println("删除《"+name+"》成功");
186                         break;
187                     }
188                 }
189 
190             }else {
191                     
192                     System.out.println("没有您要删除的dvd");
193                     System.out.println("***********************************************");
194                     break;
195                 }    
196         }
197 
198     }
199 
200 
201     //7.借dvd的功能
202     public void lendDvd(){
203         System.out.println("********欢迎进入借书页面********");
204         System.out.println("请输入您要借的dvd名称:");
205         Scanner input = new  Scanner(System.in);
206         String name = input.next();
207         
208         //1.判断有没有dvd
209             //1.又没有被借出去。
210         for(int i = 0;i<dvd.name.length;i++){
211 
212             if(dvd.name[i] != null){ // 有dvd
213 
214                 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有书并且没有被借出去
215                     
216                     //借书
217                     //1.修改状态
218                     dvd.state[i] = 0;
219                     System.out.println("请输入借书的时间(年-月-日):");
220                     Scanner inputDate = new Scanner(System.in);
221                     dvd.date[i] = inputDate.next();
222                     System.out.println("借书成功");
223                     dvd.count[i]++;
224                     break;
225 
226                 }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
227                     System.out.println("不好意思此借书已经被借出");
228                     break;
229                 }
230 
231             }else { // dvd
232                 
233                 System.out.println("没有您要找的DVD");
234                 break;
235             }
236         }
237 
238     }
239 
240     //8.还Dvd 计算价格
241     public void returnDvd(){
242 
243         System.out.println("********欢迎进入还DVD页面******************");
244         System.out.println("请输入还dvd的名称:");
245         Scanner input = new Scanner(System.in);
246         double  price = 0.0;
247         String name = input.next();
248         for(int i = 0;i<dvd.name.length;i++){
249 
250             if(dvd.name[i]!=null){ //
251 
252                 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就可以归还
253                     dvd.state[i] = 1;
254                     System.out.println("请输入归还书籍的时间(年-月-日):");
255                     Scanner inputDate = new Scanner(System.in);
256                     //获取时间差
257                     long charge = charge(dvd.date[i],inputDate.next());
258                     price = charge * 1;
259                     System.out.println("《"+dvd.name[i]+"》归还成功");
260                     System.out.println("您应付"+price+"元");
261                     //清空时间
262                     dvd.date[i] = null;
263                     break;
264 
265                 }
266 
267             }else{
268                 System.out.println("没有找到匹配的信息");
269                 break;
270             }
271         }
272         System.out.println("************************************************");
273 
274     }
275 
276     public long charge(String date1,String date2){
277         
278         //做时间差
279         //将String转为Date做计算
280         SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
281         long charge = 0;
282         try{
283             Date d1 = sd.parse(date1);  
284             Date d2 = sd.parse(date2);
285             //时间也是以毫秒为单位。
286             charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
287         }catch(ParseException e){
288             System.out.println(e);
289         }
290         
291         return charge;
292     }
293 
294 
295     //排行榜
296     public void list(){
297 
298         System.out.println("欢迎进入Dvd排行榜");
299         //排序
300         for(int i = 0 ; i <dvd.name.length-1;i++){
301 
302             if(dvd.name[i] != null){
303                 
304                 for(int j = 0; j<dvd.name.length-1-i;j++){
305 
306                     if(dvd.name[j] != null){
307 
308                         if(dvd.count[j] < dvd.count[j+1]){
309 
310                         int temp = dvd.count[j];
311                         dvd.count[j] = dvd.count[j+1];
312                         dvd.count[j+1]= temp;
313                         
314                         String name1 = dvd.name[j];
315                         dvd.name[j] = dvd.name[j+1];
316                         dvd.name[j+1] = name1;    
317 
318                         String date1= dvd.date[j];
319                         dvd.date[j] = dvd.date[j+1];
320                         dvd.date[j+1] = date1;    
321                         
322                         int state1= dvd.state[j];
323                         dvd.state[j] = dvd.state[j+1];
324                         dvd.state[j+1] = state1;
325 
326                         }
327                     }else {
328                         break;
329                     }
330                     
331                     
332                 }
333 
334             }else{
335                 break;
336             }
337         }
338         System.out.println("序号\\t名称\\t\\t状态\\t借出时间\\t");
339         for(int i=0;i<dvd.name.length ; i++){
340             if(dvd.name[i] == null){
341                 
342                 break;
343             }else if (dvd.state[i] == 0){
344                 //代表已经借出
345                 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t已借出\\t"+dvd.date[i]);
346             }else if(dvd.state[i] == 1){
347 
348                 //代没有借出
349                 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t可借\\t");
350             }
351         }
352 
353         System.out.println("**************************************");
354             
355     }
356 }

 

以上是关于Java学习手册的目 录的主要内容,如果未能解决你的问题,请参考以下文章

WPF自学手册的目 录

《阿里巴巴Java开发手册》码出高效详解- 为什么要学习阿里编码手册

新手学ASP.NET3.5网络开发的目 录

超赞!GitHub上百万下载量Java面试手册!颠覆你的认知

Java NIO 学习总结 学习手册

Java IO 学习总结 学习手册总结