种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

Java面向对象编程(第2版)

(2019-04-27 19:40:12) 百科综合

Java面向对象编程(第2版)

《Java面向对象编程(第2版)》是电子工业出版社于2017年出版的一本图书,作者是孙卫琴。

基本介绍

  • 书名:Java面向对象编程(第2版)
  • 作者:孙卫琴
  • ISBN:9787121303142
  • 页数:752
  • 出版社:电子工业出版社
  • 出版时间:2017-01
  • 开本:16开

内容简介

本书採用由浅入深、与实际套用紧密结合的方式,利用大量经典实用的实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结最佳化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程式的原理。本书的实例都基于最新的JDK8版本。本书的最大特色是以6条主线贯穿书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程式的原理、在实际项目中的运用、设计模式和性能最佳化技巧。另外,本书还贯穿了Oracle公司的OCJP(Oracle Certified Java Programmer)认证的考试要点。

作者简介

孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软体开发工作,在此其间还从事Java方面的培训和谘询工作。

目录信息

第1章面向对象开发方法概述 1
1.1 结构化的软体开发方法简介 3
1.2 面向对象的软体开发方法简介 6
1.2.1 对象模型 6
1.2.2 UML:可视化建模语言 7
1.2.3 Rational Rose:可视化建模
工具 7
1.3 面向对象开发中的核心思想
和概念 8
1.3.1 问题领域、对象、属性、状态、行为、方法、实现 8
1.3.2 类、类型 10
1.3.3 讯息、服务 12
1.3.4 接口 13
1.3.5 封装、透明 14
1.3.6 抽象 18
1.3.7 继承、扩展、覆盖 20
1.3.8 组合 21
1.3.9 多态、动态绑定 24
1.4 UML语言简介 26
1.4.1 用例图 27
1.4.2 类框图 28
1.4.3 时序图 29
1.4.4 协作图 30
1.4.5 状态转换图 30
1.4.6 组件图 31
1.4.7 部署图 32
1.5 类之间的关係 32
1.5.1 关联(Association) 33
1.5.2 依赖(Dependency) 34
1.5.3 聚集(Aggregation) 35
1.5.4 泛化(Generalization) 36
1.5.5 实现(Realization) 36
1.5.6 区分依赖、关联和聚集关係 36
1.6 实现Panel系统 39
1.6.1 扩展Panel系统 42
1.6.2 用配置档案进一步提高Panel
系统的可维护性 43
1.6.3 运行Panel系统 45
1.7 小结 45
1.8 思考题 46
第2章第一个Java套用 47
2.1 创建Java源档案 47
2.1.1 Java源档案结构 49
2.1.2 包声明语句 49
2.1.3 包引入语句 51
2.1.4 方法的声明 53
2.1.5 程式入口main()方法的声明 54
2.1.6 给main()方法传递参数 55
2.1.7 注释语句 55
2.1.8 关键字 56
2.1.9 标识符 56
2.1.10 编程规範 57
2.2 用JDK管理Java套用 57
2.2.1 JDK简介以及安装方法 58
2.2.2 编译Java源档案 60
2.2.3 运行Java程式 62
2.2.4 给Java套用打包 65
2.3 使用和创建JavaDoc文档 66
2.3.1 JavaDoc标记 68
2.3.2 javadoc命令的用法 73
2.4 Java虚拟机运行Java程式的
基本原理 75
2.5 小结 77
2.6 思考题 78
第3章数据类型和变数 81
3.1 基本数据类型 82
3.1.1 boolean类型 82
3.1.2 byte、short、int和long
类型 83
3.1.3 char类型与字元编码 85
3.1.4 float和double类型 87
3.2 引用类型 91
3.2.1 基本类型与引用类型的区别 92
3.2.2 用new关键字创建对象 94
3.3 变数的作用域 95
3.3.1 实例变数和静态变数的
生命周期 97
3.3.2 局部变数的生命周期 100
3.3.3 成员变数和局部变数同名 101
3.3.4 将局部变数的作用域
最小化 102
3.4 对象的默认引用:this 103
3.5 参数传递 105
3.6 变数的初始化以及默认值 107
3.6.1 成员变数的初始化 107
3.6.2 局部变数的初始化 108
3.7 直接数 109
3.7.1 直接数的类型 110
3.7.2 直接数的赋值 111
3.8 小结 112
3.9 思考题 113
第4章操作符 115
4.1 操作符简介 115
4.2 整型操作符 116
4.2.1 一元整型操作符 117
4.2.2 二元整型操作符 118
4.3 浮点型操作符 123
4.4 比较操作符和逻辑操作符 124
4.5 特殊操作符“?:” 127
4.6 字元串连线操作符“+” 127
4.7 操作符“==”与对象的
equals()方法 129
4.7.1 操作符“==” 129
4.7.2 对象的equals()方法 130
4.8 instanceof操作符 133
4.9 变数的赋值和类型转换 135
4.9.1 基本数据类型转换 136
4.9.2 引用类型的类型转换 139
4.10 小结 139
4.11 思考题 142
第5章流程控制 145
5.1 分支语句 146
5.1.1 if else语句 146
5.1.2 switch语句 150
5.2 循环语句 154
5.2.1 while语句 154
5.2.2 do while语句 156
5.2.3 for语句 158
5.2.4 foreach语句 161
5.2.5 多重循环 162
5.3 流程跳转语句 162
5.4 综合例子:八皇后问题 165
5.5 小结 168
5.6 思考题 169
第6章继承 173
6.1 继承的基本语法 173
6.2 方法重载(Overload) 175
6.3 方法覆盖(Override) 177
6.4 方法覆盖与方法重载的
异同 183
6.5 super关键字 183
6.6 多态 185
6.7 继承的利弊和使用原则 189
6.7.1 继承树的层次不可太多 190
6.7.2 继承树的上层为抽象层 190
6.7.3 继承关係最大的弱点:
打破封装 191
6.7.4 精心设计专门用于被继承
的类 193
6.7.5 区分对象的属性与继承 195
6.8 比较组合与继承 197
6.8.1 组合关係的分解过程对应
继承关係的抽象过程 197
6.8.2 组合关係的组合过程对应
继承关係的扩展过程 200
6.9 小结 203
6.10 思考题 204
第7章 Java语言中的修饰符 209
7.1 访问控制修饰符 210
7.2 abstract修饰符 212
7.3 final修饰符 214
7.3.1 final类 215
7.3.2 final方法 215
7.3.3 final变数 216
7.4 static修饰符 220
7.4.1 static变数 220
7.4.2 static方法 223
7.4.3 static代码块 226
7.4.4 用static进行静态导入 228
7.5 小结 228
7.6 思考题 230
第8章接口 233
8.1 接口的概念和基本特徵 234
8.2 比较抽象类与接口 237
8.3 与接口相关的设计模式 241
8.3.1 定製服务模式 241
8.3.2 适配器模式 245
8.3.3 默认适配器模式 250
8.3.4 代理模式 251
8.3.5 标识类型模式 256
8.3.6 常量接口模式 257
8.4 小结 258
8.5 思考题 259
第9章异常处理 261
9.1 Java异常处理机制概述 262
9.1.1 Java异常处理机制的优点 262
9.1.2 Java虚拟机的方法调用栈 264
9.1.3 异常处理对性能的影响 267
9.2 运用Java异常处理机制 267
9.2.1 try-catch语句:捕获异常 267
9.2.2 finally语句:任何情况下
必须执行的代码 268
9.2.3 throws子句:声明可能会
出现的异常 270
9.2.4 throw语句:抛出异常 271
9.2.5 异常处理语句的语法规则 271
9.2.6 异常流程的运行过程 274
9.2.7 跟蹤丢失的异常 278
9.3 Java异常类 280
9.3.1 运行时异常 282
9.3.2 受检查异常
(Checked Exception) 282
9.3.3 区分运行时异常和受
检查异常 283
9.4 用户定义异常 285
9.4.1 异常转译和异常链 285
9.4.2 处理多样化异常 288
9.5 异常处理原则 289
9.5.1 异常只能用于非正常情况 290
9.5.2 为异常提供说明文档 290
9.5.3 儘可能地避免异常 291
9.5.4 保持异常的原子性 292
9.5.5 避免过于庞大的try代码块 294
9.5.6 在catch子句中指定具体的
异常类型 294
9.5.7 不要在catch代码块中忽略
被捕获的异常 294
9.6 记录日誌 295
9.6.1 创建Logger对象及设定
日誌级别 296
9.6.2 生成日誌 297
9.6.3 把日誌输出到档案 297
9.6.4 设定日誌的输出格式 298
9.7 使用断言 299
9.8 小结 300
9.9 思考题 301
第10章类的生命周期 305
10.1 Java虚拟机及程式的
生命周期 305
10.2 类的载入、连线和初始化 305
10.2.1 类的载入 306
10.2.2 类的验证 307
10.2.3 类的準备 307
10.2.4 类的解析 308
10.2.5 类的初始化 308
10.2.6 类的初始化的时机 310
10.3 类载入器 313
10.3.1 类载入的父亲委託机制 315
10.3.2 创建用户自定义的类
载入器 317
10.3.3 URLClassLoader类 323
10.4 类的卸载 324
10.5 小结 325
10.6 思考题 326
第11章对象的生命周期 327
11.1 创建对象的方式 327
11.2 构造方法 330
11.2.1 重载构造方法 331
11.2.2 默认构造方法 332
11.2.3 子类调用父类的构造方法 333
11.2.4 构造方法的作用域 337
11.2.5 构造方法的访问级别 337
11.3 静态工厂方法 338
11.3.1 单例类 340
11.3.2 枚举类 342
11.3.3 不可变(immutable)类与
可变类 344
11.3.4 具有实例快取的
不可变类 348
11.3.5 松耦合的系统接口 350
11.4 垃圾回收 351
11.4.1 对象的可触及性 352
11.4.2 垃圾回收的时间 354
11.4.3 对象的finalize()方法简介 354
11.4.4 对象的finalize()方法的
特点 355
11.4.5 比较finalize()方法和finally
代码块 357
11.5 清除过期的对象引用 358
11.6 对象的强、软、弱和
虚引用 360
11.7 小结 366
11.8 思考题 367
第12章内部类 371
12.1 内部类的基本语法 371
12.1.1 实例内部类 373
12.1.2 静态内部类 376
12.1.3 局部内部类 377
12.2 内部类的继承 379
12.3 子类与父类中的内部类
同名 380
12.4 匿名类 381
12.5 内部接口以及接口中的
内部类 384
12.6 内部类的用途 385
12.6.1 封装类型 385
12.6.2 直接访问外部类的成员 385
12.6.3 回调 386
12.7 内部类的类档案 388
12.8 小结 389
12.9 思考题 389
第13章多执行绪 393
13.1 Java执行绪的运行机制 393
13.2 执行绪的创建和启动 395
13.2.1 扩展java.lang.Thread类 395
13.2.2 实现Runnable接口 400
13.3 执行绪的状态转换 402
13.3.1 新建状态 402
13.3.2 就绪状态 402
13.3.3 运行状态 402
13.3.4 阻塞状态 403
13.3.5 死亡状态 404
13.4 执行绪调度 405
13.4.1 调整各个执行绪的优先权 406
13.4.2 执行绪睡眠:Thread.sleep()
方法 408
13.4.3 执行绪让步:
Thead.yield()方法 409
13.4.4 等待其他执行绪结束:join() 410
13.5 获得当前执行绪对象的引用 411
13.6 后台执行绪 412
13.7 定时器 413
13.8 执行绪的同步 415
13.8.1 同步代码块 418
13.8.2 执行绪同步的特徵 422
13.8.3 同步与并发 425
13.8.4 执行绪安全的类 426
13.8.5 释放对象的锁 427
13.8.6 死锁 429
13.9 执行绪通信 430
13.10 中断阻塞 435
13.11 执行绪控制 436
13.11.1 被废弃的suspend()和
resume()方法 437
13.11.2 被废弃的stop()方法 438
13.11.3 以编程的方式控制执行绪 438
13.12 执行绪组 440
13.13 处理执行绪未捕获的异常 441
13.14 ThreadLocal类 443
13.15 concurrent并发包 445
13.15.1 用于执行绪同步的Lock
外部锁 446
13.15.2 用于执行绪通信的Condition
条件接口 447
13.15.3 支持异步计算的Callable
接口和Future接口 450
13.15.4 通过执行绪池来高效管理
多个执行绪 452
13.15.5 BlockingQueue阻塞伫列 454
13.16 小结 457
13.17 思考题 458
第14章数组 461
14.1 数组变数的声明 461
14.2 创建数组对象 462
14.3 访问数组的元素和长度 463
14.4 数组的初始化 465
14.5 多维数组以及不规则数组 465
14.6 调用数组对象的方法 467
14.7 把数组作为方法参数或
返回值 467
14.8 数组排序 470
14.9 数组的二分查找算法 471
14.10 哈希表 472
14.11 数组实用类:Arrays 477
14.12 用符号“…”声明数目
可变参数 480
14.13 小结 481
14.14 思考题 481
第15章 Java集合 485
15.1 Collection和Iterator接口 486
15.2 集合中直接加入基本类型
数据 489
15.3 Set(集) 490
15.3.1 Set的一般用法 490
15.3.2 HashSet类 491
15.3.3 TreeSet类 493
15.4 List(列表) 497
15.4.1 访问列表的元素 498
15.4.2 为列表排序 498
15.4.3 ListIterator接口 499
15.4.4 获得固定长度的
List对象 500
15.4.5 比较Java数组和各种List
的性能 500
15.5 Queue(伫列) 503
15.5.1 Deque(双向伫列) 504
15.5.2 PriorityQueue
(优先权伫列) 505
15.6 Map(映射) 505
15.7 HashSet和HashMap的
负载因子 507
15.8 集合实用类:Collections 508
15.9 执行绪安全的集合 510
15.10 集合与数组的互换 511
15.11 集合的批量操作 512
15.12 历史集合类 513
15.13 枚举类型 517
15.13.1 枚举类型的构造方法 519
15.13.2 EnumSet类和
EnumMap类 520
15.14 小结 521
15.15 思考题 521
第16章泛型 523
16.1 Java集合的泛型 523
16.2 定义泛型类和泛型接口 524
16.3 用extends关键字限定
类型参数 526
16.4 定义泛型数组 527
16.5 定义泛型方法 528
16.6 使用“?”通配符 529
16.7 使用泛型的注意事项 530
16.8 小结 531
16.9 思考题 531
第17章 Lambda表达式 533
17.1 Lambda表达式的基本用法 533
17.2 用Lambda表达式代替
内部类 534
17.3 Lambda表达式和集合的
forEach()方法 535
17.4 用Lambda表达式对集合
进行排序 536
17.5 Lambda表达式与
Stream API联合使用 537
17.6 Lambda表达式可操纵的
变数作用域 539
17.7 Lambda表达式中的方法
引用 540
17.8 函式式接口
(FunctionalInterface) 541
17.9 总结Java语法糖 541
17.10 小结 542
17.11 思考题 542
第18章输入与输出(I/O) 545
18.1 输入流和输出流概述 546
18.2 输入流 547
18.2.1 位元组数组输入流:
ByteArrayInputStream类 548
18.2.2 档案输入流:
FileInputStream类 549
18.2.3 管道输入流:
PipedInputStream 551
18.2.4 顺序输入流:
SequenceInputStream类 552
18.3 过滤输入流:
FilterInputStream 552
18.3.1 装饰器设计模式 553
18.3.2 过滤输入流的种类 554
18.3.3 DataInputStream类 555
18.3.4 BufferedInputStream类 556
18.3.5 PushbackInputStream类 557
18.4 输出流 557
18.4.1 位元组数组输出流:
ByteArrayOutputStream类 557
18.4.2 档案输出流:
FileOutputStream 558
18.5 过滤输出流:
FilterOutputStream 559
18.5.1 DataOutputStream 559
18.5.2 BufferedOutputStream 559
18.5.3 PrintStream类 561
18.6 Reader/Writer概述 563
18.7 Reader类 565
18.7.1 字元数组输入流:
CharArrayReader类 566
18.7.2 字元串输入流:
StringReader类 566
18.7.3 InputStreamReader类 567
18.7.4 FileReader类 568
18.7.5 BufferedReader类 568
18.8 Writer类 568
18.8.1 字元数组输出流:
CharArrayWriter类 569
18.8.2 OutputStreamWriter类 570
18.8.3 FileWriter类 572
18.8.4 BufferedWriter类 573
18.8.5 PrintWriter类 573
18.9 标準I/O 574
18.9.1 重新包装标準输入和输出 574
18.9.2 标準I/O重定向 575
18.10 随机访问档案类:
RandomAccessFile 576
18.11 新I/O类库 577
18.11.1 缓冲器Buffer概述 578
18.11.2 通道Channel概述 579
18.11.3 字元编码Charset类概述 581
18.11.4 用FileChannel读写档案 581
18.11.5 控制缓冲区 582
18.11.6 字元编码转换 583
18.11.7 缓冲区视图 584
18.11.8 档案映射缓冲区:
MappedByteBuffer 586
18.11.9 档案加锁 587
18.12 对象的序列化与反序列化 589
18.13 自动释放资源 595
18.14 用File类来查看、创建和
删除档案或目录 596
18.15 用java.nio.file类库来操作
档案系统 599
18.15.1 複製、移动档案以及遍历、
过滤目录树 600
18.15.2 查看ZIP压缩档案 601
18.16 小结 602
18.17 思考题 603
第19章图形用户界面 605
19.1 AWT组件和Swing组件 605
19.2创建图形用户界面的
基本步骤 608
19.3布局管理器 610
19.3.1 FlowLayout(流式布局
管理器) 611
19.3.2 BorderLayout(边界布局
管理器) 613
19.3.3 GridLayout(格线布局
管理器) 616
19.3.4 CardLayout(卡片布局
管理器) 619
19.3.5 GridBagLayout(格线包
布局管理器) 620
19.4事件处理 626
19.4.1 事件处理的软体实现 626
19.4.2 事件源﹑事件和监听器
的类层次和关係 632
19.5 AWT绘图 637
19.5.1 Graphics类 639
19.5.2 Graphics2D类 644
19.6 AWT执行绪(事件分派
执行绪) 647
19.7小结 649
19.8思考题 650
第20章常用Swing组件 653
20.1 框线(Border) 653
20.2 按钮组件(AbstractButton)
及子类 654
20.3 文本框(JTextField) 657
20.4 文本区域(JTextArea)与
滚动面板(JScrollPane) 660
20.5 複选框(JCheckBox)与单选
按钮(JRadioButton) 661
20.6 下拉列表(JComboBox) 664
20.7 列表框(JList) 665
20.8 页签面板(JTabbedPane) 667
20.9 选单(JMenu) 669
20.10 对话框(JDialog) 674
20.11 档案对话框
(JFileChoose) 676
20.12 讯息框 679
20.13 製作动画 681
20.14 播放音频档案 683
20.15 BoxLayout布局管理器 686
20.16 设定Swing界面的外观
和感觉 689
20.17 小结 691
20.18 思考题 692
第21章 Java常用类 693
21.1 Object类 693
21.2 String类和StringBuffer类 694
21.2.1 String类 694
21.2.2 “hello”与new String(“hello”)
的区别 697
21.2.3 StringBuffer类 698
21.2.4 比较String类与
StringBuffer类 699
21.2.5 正则表达式 701
21.2.6 格式化字元串 703
21.3 包装类 707
21.3.1 包装类的构造方法 707
21.3.2 包装类的常用方法 708
21.3.3 包装类的自动装箱和拆箱 709
21.4 Math类 710
21.5 Random类 712
21.6 传统的处理日期/时间的类 712
21.6.1 Date类 713
21.6.2 DateFormat类 713
21.6.3 Calendar类 715
21.7 新的处理日期/时间的类 716
21.7.1 LocalDate类 717
21.7.2 LocalTime类 718
21.7.3 LocalDateTime类 718
21.8 BigInteger类 719
21.9 BigDecimal类 720
21.10 用Optional类避免空指针
异常 722
21.11 小结 724
21.12 思考题 725
第22章 Annotation注解 727
22.1 自定义Annotation注解
类型 727
22.2 在类的原始码中引用
注解类型 730
22.3 在程式中运用反射机制读取
类的注解信息 732
22.4 基本内置注解 735
22.5 小结 736
22.6 思考题 736

标 签

搜索
随机推荐

Powered By 种豆资源网||