第一部分 理论部分 3
第1章 类的复用机制 3
1.1组合 3
1.2继承 4
1.3向上转型 7
1.3.1向上转型概念 7
1.3.2向上转型存在的问题 9
1.3.3向上转型的价值 11
1.4再谈继承和组合 12
1.5总结 14
第2章 多态性 15
2.1方法重载 15
2.2绑定 16
2.3动态绑定的价值 19
2.4覆盖private方法 20
2.5再次探究方法的覆盖 21
2.6覆盖必须遵守的规则 22
2.7重载和覆盖区别 22
2.8构造方法和多态 23
2.8.1构造方法的调用顺序 23
2.8.2构造方法内部的多态方法的行为 25
2.9总结 27
第3章 抽象类和接口 28
3.1抽象 28
3.2抽象类 28
3.3接口 30
3.3.1降低对象之间的耦合关系 31
3.3.2支持多种类型的向上转型 32
3.4接口和抽象类在设计层面上的区别 33
3.5接口和抽象类的选择依据 34
3.6总结 35
第4章 面向对象程序的设计原则 36
4.1软件系统的可维护性 36
4.1.1软件的维护 36
4.1.2一个典型的软件生命周期 37
4.1.3真正的原因 37
4.1.4设计的目标 38
4.2系统的可复用性 38
4.2.1复用的重要性 38
4.2.2传统的复用 38
4.2.3可维护性与复用的关系 39
4.2.4面向对象设计的复用 39
4.2.5对可维护性的支持 40
4.2.6学习设计模式对复用性与可维护性的帮助 40
4.3“开—闭”原则 41
4.3.1什么是“开—闭”原则 41
4.3.2怎样做到“开—闭”原则 41
4.4依赖倒转原则 42
4.5里氏代换原则 43
4.6合成/聚合复用原则 44
4.7迪米特原则 44
4.8接口隔离原则 44
4.9总结 45
第5章 设计模式 46
5.1设计模式的类型 46
5.1.1创建型 47
5.1.2结构型 47
5.1.3行为型 47
5.2设计模式在Java API上的应用 48
5.2.1 Bridge模式 48
5.2.2 Decorator模式 51
5.3总结 55
第6章 JDBC编程 56
6.1 JDBC的概念 56
6.2 JDBC驱动程序的类型 58
6.3 JDBC编程的基本概念 60
6.3.1 JDBC程序访问数据库总体步骤 61
6.3.2首先建立ODBC数据源,数据源的建立步骤如下 61
6.3.3建立JDBC连接 61
6.3.4构造SQL语句 62
6.3.5提交查询 62
6.3.6显示结果 63
6.3.7关闭资源 64
6.3.8 PreparedStatement接口 65
6.3.9 CallableStatement接口 66
6.4纯Java驱动方式连接数据库 69
6.5纯Java驱动连接Oracle 69
6.6总结 69
第7章 集合框架 71
7.1集合框架的体系结构 71
7.1.1接口 71
7.1.2实现 73
7.1.3算法 76
7.2集合类和接口 77
7.2.1 Vector类 77
7.2.2 Enumeration接口 78
7.2.3 Stack类 78
7.2.4 HashMap类 79
7.3总结 80
第8章 JavaIO系统 81
8.1 java.io包 82
8.1.1字节流 82
8.1.2字符流 82
8.2输入流 83
8.2.1 FileInputStream 83
8.2.2 ByteArrayInputStream 84
8.2.3 StringBufferInputStream 85
8.3输出流 85
8.3.1 FileOutputStream 85
8.3.2 ByteArrayOutputStream 87
8.3.3 FilterOutputStream 87
8.4 File类 88
8.5从一个流构造另一个流 90
8.6 Reader 91
8.7 Writer 94
8.8总结 97
第9章 多线程 98
9.1线程的概念 98
9.2 Java线程模型 99
9.3线程状态 102
9.4 Thread类的重要方法 103
9.5线程组 105
9.6线程优先级 106
9.7线程同步 108
9.7.1同步方法 108
9.7.2同步块 109
9.7.3死锁 110
9.8线程间通讯方法 111
9.8.1生产者/消费者模型 111
9.8.2 Wait—Notify机制 113
9.9线程的灵活运用 114
9.10总结 116
练习 116
作业 117
第10章 网络编程 118
10.1 java.net包概述 118
10.1.1网络 118
10.1.2协议 119
10.1.3客户端/服务器模式 119
10.1.4 Internet地址 119
10.1.5域名系统(DNS) 120
10.2套接字相关类 120
10.2.1 InetAddress类 121
10.2.2 Socket类 122
10.2.3 ServerSocket类 123
10.2.4 DatagramSocket 126
10.2.5 DatagramPacket 126
10.3 WEB相关类 129
10.3.1 URL 129
10.3.2 URLConnection 130
10.3.3 URLEncoder 130
10.4总结 132
第11章 JavaBean高级应用 133
11.1事件模型 133
11.1.1事件 135
11.1.2事件源 135
11.1.3监听器 135
11.1.4事件的命名模式 135
11.1.5添加Bean自定义事件的步骤 135
11.1.6在JavaBean中访问数据库 138
11.2总结 139
第12章 Log4j的使用 140
12.1简介 140
12.2 Log4j使用步骤 143
12.3 Log4j配置文件 143
12.3.1配置根Logger 144
12.3.2配置日志信息输出目的地 144
12.3.3配置日志信息的格式 145
12.4总结 146
第二部分 上机部分 149
上机1 面向对象编程思想 149
第一部分 指导 149
指导1组合 149
指导2重载和覆盖 150
指导3动态绑定 150
指导4抽象类 152
指导5接口 152
第二部分 练习 154
练习1 154
练习2针对抽象编程 155
第三部分 作业 155
作业1 155
作业2 155
上机2 集合框架 156
第一部分 指导 156
第二部分 练习 158
第三部分 作业 158
上机3 IO流 159
第一部分 指导 159
第二部分 练习 161
第三部分 作业 162
上机4 多线程 163
第一部分 指导 163
第二部分 练习 165
第三部分 作业 166
上机5 网络编程 167
第一部分 指导 167
第二部分 练习 170
第三部分 作业 172
上机6 JavaBean高级应用 173
第一部分 指导 173
第二部分 练习 175
第三部分 作业 178
上机7 Log4j 179
第一部分 指导 179
第二部分 练习 180
第三部分 作业 181
附录 Java中的引用 182
1.用引用(reference)操纵对象 182
2.引用和指针的区别 182
3.必须由你创建所有对象 183
4.存储到什么地方 183
5.特例:基本类型 184
6.高精度数字 185
7.Java中的数组 185
8.传引用 185
9.传值 188