实用java教程_实用Java教程 目录

目录

第一部分 面向对象基础

第1章 对象和类 ………………………………1

1.1   对象和类 …………………………………1

1.2   创建对象 …………………………………1

1.3   调用方法 …………………………………2

1.4   参数 ………………………………………3

1.5   数据类型 …………………………………4

1.6   多个实例 …………………………………5

1.7   状态 ………………………………………5

1.8   对象中的字段和方法 ……………………6

1.9   对象交互 …………………………………7

1.10   源代码……………………………………8

1.11   另一个例子………………………………9

1.12   返回值……………………………………9

1.13   对象作为参数进行传递 ………………10

小结 ……………………………………………11

关键术语 ………………………………………11

第2章 理解类的定义 ………………………13

2.1   售票机……………………………………13

2.2   检查类的定义……………………………14

2.3   字段、构造器和方法……………………16

2.3.1   字段 …………………………………17

2.3.2   构造器 ………………………………19

2.4   通过参数传递数据………………………20

2.5   赋值………………………………………21

2.6   访问器方法………………………………22

2.7   修改器方法………………………………24

2.8   在方法中打印……………………………25

2.9   简易型售票机的总结……………………27

2.10   对售票机设计的探讨 …………………28

2.11   做选择:条件语句 ……………………28

2.12   高级条件语句的例子 …………………31

2.13   局部变量 ………………………………32

2.14   字段、参数和局部变量 ………………33

2.15   改进型售票机的总结 …………………34

2.16   自我复习练习题 ………………………34

2.17   回顾一个熟悉的例子 …………………36

小结 ……………………………………………39

关键术语 ………………………………………39

第3章 对象交互 ……………………………42

3.1   时钟的例子………………………………42

3.2   抽象与模块化……………………………42

3.3   软件中的抽象……………………………43

3.4   在时钟例子里的模块化…………………43

3.5   实现时钟显示器…………………………44

3.6   类图与对象图……………………………45

3.7   基本类型和对象类型……………………47

3.8   ClockDisplay的源代码 ………………48

3.8.1   NumberDisplay类 …………………48

3.8.2   字符串拼接 …………………………49

3.8.3   取模运算符 …………………………50

3.8.4   ClockDisplay类 …………………51

3.9   对象创建对象……………………………54

3.10   多个构造器 ……………………………55

3.11   方法调用 ………………………………55

3.11.1   内部方法调用………………………55

3.11.2   外部方法调用………………………56

3.11.3   时钟显示器的总结…………………57

3.12   另一个对象交互的例子 ………………57

3.12.1   邮件系统的例子……………………58

3.12.2   this关键字 ………………………59

3.13   使用调试器 ……………………………60

3.13.1   设置断点……………………………60

3.13.2   单步执行……………………………61

3.13.3   单步进入方法………………………62

3.14   方法调用回顾 …………………………63

小结 ……………………………………………63

关键术语 ………………………………………64

第4章 对象集合 ………………………………65

4.1   在可变容量的容器中存放对象…………65

4.2   个人记事本………………………………65

4.3   初涉类库…………………………………66

4.4   容器的对象结构…………………………67

4.5   泛型类……………………………………69

4.6   容器内的编号……………………………69

4.7   从容器中删除对象………………………70

4.8   处理整个容器……………………………71

4.8.1   for-each循环………………………72

4.8.2   while循环 …………………………73

4.8.3   遍历容器 ……………………………76

4.8.4   索引存取与迭代器的比较 …………77

4.9   记事本例子的总结………………………77

4.10   另一个例子:拍卖系统 ………………78

4.10.1   Lot类 ………………………………78

4.10.2   Auction类…………………………79

4.10.3   匿名对象……………………………81

4.10.4   使用容器……………………………82

4.11   可变容量容器的总结 …………………84

4.12   固定容量的容器 ………………………84

4.12.1   日志文件分析器……………………84

4.12.2   声明数组变量………………………86

4.12.3   创建数组对象………………………87

4.12.4   使用数组对象………………………88

4.12.5   分析日志文件………………………88

4.12.6   for循环 ……………………………89

小结 ……………………………………………93

关键术语 ………………………………………93

第5章 高级行为 ……………………………95

5.1 类库的文档………………………………95

5.2 TechSupport系统 ………………………96

5.2.1 研究TechSupport系统………………96

5.2.2 阅读代码 ……………………………97

5.3 阅读类文档 ……………………………101

5.3.1 接口与实现 ………………………102

5.3.2 使用类库中的类的方法 …………102

5.3.3 检查字符串是否相等 ……………104

5.4  增加随机行为…………………………104

5.4.1 Random类 …………………………105

5.4.2 在有限范围内产生随机数 ………105

5.4.3 产生随机的回答 …………………106

5.4.4 阅读参数化的类的文档 …………108

5.5 包和导入 ………………………………109

5.6   使用映射表示关联 ……………………109

5.6.1   映射的概念…………………………110

5.6.2   使用HashMap………………………110

5.6.3   在TechSupport系统中使用映射 …111

5.7   使用集合 ………………………………113

5.8   分割字符串 ……………………………114

5.9   完成TechSupport系统 …………………115

5.10   编写类文档……………………………116

5.10.1   在BlueJ中使用javadoc …………117

5.10.2   类文档的组成 ……………………117

5.11   公共与私有……………………………118

5.11.1   信息隐藏 …………………………119

5.11.2   私有方法和公共字段 ……………119

5.12   通过接口研究类………………………120

5.13   类变量和常量…………………………122

5.13.1   static关键字 ……………………122

5.13.2   常量 ………………………………124

小结 …………………………………………124

关键术语 ……………………………………125

第6章 使对象正常运行 ……………………126

6.1   引言 ……………………………………126

6.2   测试和调试 ……………………………126

6.3   用BlueJ进行单元测试 …………………127

6.3.1   使用检查器…………………………130

6.3.2   正向测试和反向测试………………132

6.4   测试自动化 ……………………………132

6.4.1   回归测试……………………………132

6.4.2   自动检查测试结果…………………134

6.4.3   记录测试……………………………136

6.4.4   夹具…………………………………138

6.5   模块化和接口 …………………………139

6.6   调试场景 ………………………………140

6.7   注释与风格 ……………………………141

6.8   人工走查 ………………………………141

6.8.1   高层次的走查………………………142

6.8.2   用走查来检查状态…………………143

6.8.3   口头走查……………………………145

6.9   打印语句 ………………………………145

6.10   选择测试策略…………………………148

6.11   调试……………………………………148

6.12   在实战中使用这些技术………………149

小结 …………………………………………149

关键术语 ……………………………………149

第7章 类的设计 ……………………………150

7.1   引言 ……………………………………150

7.2   world-of-zuul游戏的例子………………151

7.3   耦合和内聚的介绍 ……………………152

7.4   代码重复 ………………………………153

7.5   扩展 ……………………………………157

7.5.1   任务…………………………………157

7.5.2   找到相关的源代码…………………157

7.6   耦合 ……………………………………158

7.7   责任驱动的设计 ………………………162

7.8   改动局部化 ……………………………164

7.9   隐性耦合 ………………………………165

7.10   预见性…………………………………167

7.11   内聚……………………………………168

7.11.1   方法的内聚 ………………………168

7.11.2   类的内聚 …………………………169

7.11.3   内聚对于可读性的好处 …………170

7.11.4   内聚对于重用的好处 ……………170

7.12   重构……………………………………171

7.12.1   重构与测试 ………………………171

7.12.2   重构的例子 ………………………171

7.13   语言无关的重构………………………174

7.13.1   枚举类型 …………………………174

7.13.2   命令界面的进一步解耦 …………175

7.14   设计原则………………………………177

7.15   脱离BlueJ执行程序 …………………178

7.15.1   类方法 ……………………………178

7.15.2   main方法 …………………………178

7.15.3   类方法的限制 ……………………179

小结 …………………………………………179

关键术语 ……………………………………179

第二部分 应用程序结构

第8章 通过继承改进结构 …………………181

8.1   DoME例子………………………………181

8.1.1   DoME的类与对象 …………………182

8.1.2   DoME源代码 ………………………184

8.1.3   DoME程序的讨论 …………………189

8.2   使用继承 ………………………………189

8.3   继承层次 ………………………………191

8.4   Java的继承 ……………………………191

8.4.1   继承与访问权限……………………192

8.4.2   继承与初始化………………………192

8.5   DoME:增加另一种媒体类型…………194

8.6   (迄今为止)继承的优点 ……………196

8.7   子类型 …………………………………196

8.7.1   子类与子类型………………………197

8.7.2   子类型与赋值………………………198

8.7.3   子类型与参数传递…………………199

8.7.4   多态变量……………………………199

8.7.5   换型…………………………………200

8.8   Object类 ………………………………201

8.9   自动包装与包裹类 ……………………202

8.10   容器层次………………………………202

小结 …………………………………………202

关键术语 ……………………………………203

第9章 继承深入 ……………………………204

9.1   问题:DoME的打印方法………………204

9.2   静态类型和动态类型 …………………205

9.3   覆写 ……………………………………208

9.4   动态查找方法 …………………………209

9.5   方法中的超类调用 ……………………211

9.6   方法多态性 ……………………………212

9.7   Object的方法:toString …………212

9.8   受保护的访问 …………………………214

9.9   有覆写的继承的另一个例子 …………216

小结 …………………………………………218

关键术语 ……………………………………218

第10章 高级抽象技术 ……………………220

10.1   仿真……………………………………220

10.2   狐狸与兔子仿真………………………220

10.2.1   foxes-and-rabbits工程 ……………221

10.2.2   Rabbit类 …………………………223

10.2.3   Fox类………………………………225

10.2.4   Simulator类:设置 ……………228

10.2.5   Simulator类:仿真的一步 ……231

10.2.6   采取措施改进仿真 ………………232

10.3   抽象类…………………………………232

10.3.1   Animal超类 ………………………233

10.3.2   抽象方法 …………………………233

10.3.3   抽象类 ……………………………235

10.4   进一步的抽象方法……………………237

10.5   多继承…………………………………239

10.5.1   Actor类 …………………………239

10.5.2   通过抽象实现的灵活性 …………240

10.5.3   有选择地绘画 ……………………240

10.5.4   可以画的角色:多继承 …………240

10.6   接口……………………………………241

10.6.1   Actor接口 ………………………241

10.6.2   接口的多继承 ……………………243

10.6.3   作为类型的接口 …………………243

10.6.4   作为规范的接口 …………………244

10.6.5   接口的其他例子 …………………245

10.6.6   抽象类还是接口 …………………246

10.7   继承的总结……………………………246

小结 …………………………………………246

关键术语 ……………………………………246

第11章 构造图形用户界面程序 …………248

11.1   引言……………………………………248

11.2   组件、布局和事件处理………………248

11.3   AWT和Swing …………………………249

11.4   ImageViewer例子 ……………………249

11.4.1   第一个实验:创建一个框架 ……250

11.4.2   加入简单的组件 …………………251

11.4.3   加入菜单 …………………………253

11.4.4   事件处理 …………………………253

11.4.5   集中接收事件 ……………………254

11.4.6   内部类 ……………………………256

11.4.7   匿名的内部类 ……………………257

11.5   ImageViewer 1.0:第一个完整的版本…258

11.5.1   图像处理类 ………………………259

11.5.2   加入图像 …………………………260

11.5.3   布局 ………………………………261

11.5.4   嵌套的容器 ………………………263

11.5.5   图像过滤器 ………………………265

11.5.6   对话框 ……………………………267

11.6   ImageViewer 2.0:改进的程序结构…269

11.7   ImageViewer 3.0:更多界面组件……273

11.7.1   按钮 ………………………………273

11.7.2   边界 ………………………………275

11.8   进一步的扩展…………………………276

11.9   另一个例子:SoundPlayer……………277

小结 …………………………………………279

关键术语 ……………………………………280

第12章 错误处理 …………………………281

12.1   address-book工程 ……………………281

12.2   防御性编程……………………………285

12.2.1   客户-服务器交互 ………………285

12.2.2   参数检查 …………………………286

12.3   服务器错误报告………………………287

12.3.1   通知用户 …………………………287

12.3.2   通知客户对象 ……………………287

12.4   异常抛出原则…………………………290

12.4.1   抛出异常 …………………………290

12.4.2   异常类 ……………………………291

12.4.3   异常的影响 ………………………292

12.4.4   不受检异常 ………………………292

12.4.5   阻止对象创建 ……………………293

12.5   异常处理………………………………294

12.5.1   受检异常:throws子句 …………295

12.5.2   捕捉异常:try语句………………295

12.5.3   抛出和捕捉多个异常 ……………296

12.5.4   扩散异常 …………………………298

12.5.5   finally子句 ……………………298

12.6   定义新的异常类………………………299

12.7   使用断言………………………………300

12.7.1   内部一致性检查 …………………300

12.7.2   断言语句 …………………………301

12.7.3   使用断言的指南 …………………302

12.7.4   断言与BlueJ单元测试框架 ………303

12.8   错误恢复和错误避免…………………303

12.8.1   错误恢复 …………………………303

12.8.2   错误避免 …………………………304

12.9   案例研究:文本输入-输出…………305

12.9.1   阅读器、写入器和流 ……………306

12.9.2   address-book-io工程………………306

12.9.3   用FileWriter类做文本输出……308

12.9.4   用FileReader类做文本输入……309

12.9.5   Scanner:从终端读输入 ………310

12.9.6   对象串行化 ………………………310

小结 …………………………………………311

关键术语 ……………………………………311

第13章 应用程序设计 ……………………312

13.1   分析与设计……………………………312

13.1.1   动词-名词方法 …………………312

13.1.2   电影院订票系统的例子 …………312

13.1.3   发现类 ……………………………313

13.1.4   使用CRC卡 ………………………313

13.1.5   场景 ………………………………314

13.2   类的设计………………………………316

13.2.1   设计类的界面 ……………………317

13.2.2   用户界面设计 ……………………317

13.3   文档……………………………………318

13.4   合作……………………………………318

13.5   原型……………………………………318

13.6   软件成长………………………………319

13.6.1   瀑布模型 …………………………319

13.6.2   迭代开发 …………………………319

13.7   使用设计模式…………………………320

13.7.1   模式的结构 ………………………321

13.7.2   装饰 ………………………………321

13.7.3   单件 ………………………………322

13.7.4   工厂方法 …………………………322

13.7.5   观察者 ……………………………323

13.7.6   模式总结 …………………………324

小结 …………………………………………325

关键术语 ……………………………………325

第14章 案例研究 …………………………326

14.1   案例研究………………………………326

14.2   分析与设计……………………………327

14.2.1   发现类 ……………………………327

14.2.2   使用CRC卡 ………………………327

14.2.3   场景模拟 …………………………328

14.3   类设计…………………………………329

14.3.1   设计类的接口 ……………………329

14.3.2   合作者 ……………………………329

14.3.3   概要实现 …………………………330

14.3.4   测试 ………………………………333

14.3.5   遗留问题 …………………………334

14.4   迭代开发………………………………334

14.4.1   开发步骤 …………………………334

14.4.2   第一个阶段 ………………………335

14.4.3   第一阶段的测试 …………………338

14.4.4   开发的下一个阶段 ………………338

14.4.5   下一步开发的想法 ………………339

14.4.6   重用 ………………………………339

14.5   另一个例子……………………………340

14.6   百尺竿头………………………………340

附录A 使用BlueJ ……………………………341

附录B Java数据类型 ………………………342

附录C Java控制结构 ………………………344

附录D 运算符 ………………………………349

附录E 脱离BlueJ运行Java程序 …………351

附录F 配置BlueJ ……………………………354

附录G 使用调试器 …………………………356

附录H JUnit单元测试工具 …………………360

附录Ijavadoc ………………………………362

附录J 程序风格指南 ………………………365

附录K 重要的类库类 ………………………368

索引 ……………………………………………371

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值