目录 第一篇Java基础 第1章第一个Java程序/3 1.1示例程序3 1.1.1HelloWorld程序3 1.1.2HelloWorld程序分析 4 1.2相关知识5 1.2.1下载安装工具包5 1.2.2配置6 1.2.3编辑程序6 1.2.4编译运行程序8 1.3训练程序9 1.3.1程序分析9 1.3.2参考程序9 1.3.3程序调试9 1.3.4进阶训练11 1.4拓展知识11 1.4.1开发工具11 1.4.2Java API文档12 1.4.3编码规范12 1.5实做程序13 第2章显示学生成绩/15 2.1示例程序15 2.1.1显示学生信息15 2.1.2引入变量16 2.1.3增加注释16 2.2相关知识18 2.2.1标识符和关键字18 2.2.2数据类型和变量18 2.2.3运算符和表达式20 2.2.4输入语句23 2.3训练程序24 2.3.1程序分析24 2.3.2参考程序24 2.3.3进阶训练26 2.4拓展知识26 2.4.1Java虚拟机26 2.4.2变量存储27 2.4.3变量类型转换27 2.5实做程序28 第3章学生成绩分级/33 3.1示例程序33 3.2相关知识34 3.2.1基本语句34 3.2.2条件分支语句35 3.2.3多分支语句36 3.3训练程序36 3.3.1程序分析37 3.3.2参考程序37 3.3.3进阶训练38 3.4拓展知识39 3.4.1分支语句讨论39 3.4.2数据合法性检查40 3.5实做程序42 第4章计算平均成绩/46 4.1示例程序46 4.1.1计算平均成绩46 4.1.2引入常量47 4.1.3未知人数48 4.2相关知识50 4.2.1for循环语句50 4.2.2循环累加51 4.2.3while循环语句52 4.3训练程序53 4.3.1程序分析53 4.3.2参考程序53 4.3.3进阶训练54 4.4拓展知识55 4.4.1循环语句讨论55 4.4.2循环边界检查55 4.5实做程序56 第5章显示班级成绩单/61 5.1示例程序61 5.1.1班级平均成绩61 5.1.2显示最高成绩62 5.2相关知识64 5.2.1一维数组64 5.2.2多维数组64 5.2.3String类64 5.3训练程序66 5.3.1程序分析66 5.3.2参考程序67 5.3.3进阶训练68 5.4拓展知识68 5.4.1数组讨论68 5.4.2数组的存储69 5.5实做程序70 第6章显示学生基本信息/73 6.1示例程序73 6.1.1程序实现73 6.1.2处理部分提取74 6.1.3读入部分提取75 6.2相关知识76 6.2.1Java方法76 6.2.2参数传递77 6.3训练程序78 6.3.1程序分析78 6.3.2参考程序79 6.3.3进阶训练79 6.4拓展知识80 6.4.1方法重构80 6.4.2方法存储80 6.4.3main()方法说明80 6.5实做程序82 Java基础与应用(第2版)目录第二篇面向对象程序设计 第7章简单Student类/87 7.1示例程序87 7.1.1显示学生信息87 7.1.2增加测试类89 7.2相关知识90 7.2.1Java类定义90 7.2.2类的方法91 7.3训练程序92 7.3.1程序分析92 7.3.2参考程序92 7.3.3进阶训练93 7.4拓展知识93 7.4.1为什么引入类93 7.4.2变量作用域94 7.5实做程序95 第8章Student类对象/98 8.1示例程序98 8.1.1访问控制权限98 8.1.2添加构造方法99 8.2相关知识101 8.2.1构造方法101 8.2.2访问权限控制102 8.2.3类的组成部分103 8.3训练程序103 8.3.1程序分析104 8.3.2参考程序104 8.3.3进阶训练105 8.4拓展知识106 8.4.1对象存储106 8.4.2对象相等107 8.5实做程序109 第9章完善Student类/112 9.1示例程序112 9.1.1添加置取方法112 9.1.2增加构造方法113 9.1.3完整的Student类 115 9.2相关知识117 9.2.1置取方法117 9.2.2对象this119 9.3训练程序120 9.3.1程序分析120 9.3.2参考程序121 9.3.3进阶训练122 9.4拓展知识123 9.4.1类的封装123 9.4.2置取方法讨论123 9.4.3参数传递深入讨论 124 9.5实做程序126 第10章Student类组合/130 10.1示例程序130 10.1.1MobilePhone类 130 10.1.2增加机主属性132 10.2相关知识134 10.2.1对象属性134 10.2.2类的组合关系135 10.3训练程序136 10.3.1程序分析136 10.3.2参考程序136 10.3.3进阶训练138 10.4拓展知识138 10.4.1组合讨论138 10.4.2组合与封装140 10.5实做程序143 第11章Student类方法重载/147 11.1示例程序147 11.1.1构造方法重载147 11.1.2普通方法重载148 11.2相关知识149 11.3训练程序150 11.3.1程序分析151 11.3.2参考程序151 11.3.3进阶训练152 11.4拓展知识153 11.4.1再论参数传递153 11.4.2对象复制154 11.5实做程序155 第12章Student类实例计数/158 12.1示例程序158 12.1.1显示实例顺序158 12.1.2获得学生对象个数 159 12.2相关知识160 12.2.1静态属性与实例属性 160 12.2.2再论对象创建过程 162 12.3训练程序163 12.3.1程序分析163 12.3.2参考程序163 12.4拓展知识164 12.4.1属性与局部变量 164 12.4.2静态属性与方法存储 165 12.4.3单个实例166 12.5实做程序167 第13章泛化类Person/169 13.1示例程序169 13.1.1泛化类Person的 实现169 13.1.2子类Student170 13.1.3Student对象初始化 171 13.2相关知识172 13.2.1类的继承172 13.2.2关键字super173 13.3训练程序174 13.3.1程序分析174 13.3.2参考程序174 13.3.3进阶训练175 13.4拓展知识175 13.4.1调用构造方法175 13.4.2继承与组合177 13.5实做程序179 第14章对象多态/182 14.1示例程序182 14.1.1重写display()方法 182 14.1.2向上转型184 14.2相关知识185 14.2.1方法重写185 14.2.2对象上转型186 14.3训练程序187 14.3.1程序分析188 14.3.2参考程序188 14.3.3进阶训练190 14.4拓展知识190 14.4.1动态绑定190 14.4.2多态讨论191 14.5实做程序193 第15章抽象类/195 15.1示例程序195 15.1.1方法抽象195 15.1.2抽象方法display() 195 15.2相关知识197 15.2.1抽象类定义197 15.2.2抽象类说明198 15.3训练程序198 15.3.1程序分析199 15.3.2参考程序199 15.3.3进阶训练201 15.4拓展知识201 15.5实做程序202 第16章接口设计/204 16.1示例程序204 16.1.1定义接口Moveable 204 16.1.2应用Moveable实现 多态206 16.2相关知识207 16.2.1接口定义207 16.2.2接口与抽象类比较 209 16.3训练程序211 16.3.1程序分析211 16.3.2参考程序211 16.3.3进阶训练213 16.4拓展知识213 16.4.1接口讨论213 16.4.2接口应用215 16.4.3接口的增强215 16.5实做程序216 第17章异常处理/218 17.1示例程序218 17.1.1程序异常实例218 17.1.2受检异常220 17.2相关知识221 17.2.1异常处理结构221 17.2.2常见异常类222 17.3训练程序223 17.3.1程序分析223 17.3.2参考程序223 17.3.3进阶训练225 17.4拓展知识226 17.4.1异常处理讨论226 17.4.2防御性编程227 17.5实做程序230 第18章包结构设计/232 18.1示例程序232 18.1.1按包组织程序232 18.1.2导入手机类234 18.2相关知识235 18.2.1包定义235 18.2.2其他包中类的引用 237 18.3训练程序237 18.3.1程序分析238 18.3.2参考程序238 18.4拓展知识240 18.4.1Java基础类库包 240 18.4.2包的设计241 18.5实做程序242 第19章简单框架设计/243 19.1示例程序243 19.1.1简单框架243 19.1.2增加功能246 19.2相关知识247 19.2.1多态与框架247 19.2.2依赖关系247 19.3训练程序248 19.3.1程序分析248 19.3.2参考程序249 19.4拓展知识252 19.4.1框架设计252 19.4.2框架设计讨论253 19.5实做程序254 第20章带配置文件的框架/255 20.1示例程序255 20.1.1装入Person类255 20.1.2显示名字257 20.2相关知识259 20.2.1反射机制259 20.2.2反射机制应用260 20.3训练程序260 20.3.1程序分析260 20.3.2参考程序261 20.4拓展知识264 20.4.1反射机制讨论264 20.4.2配置文件264 20.4.3注解265 20.5实做程序266 第三篇Java应用开发 第21章学生成绩排序输出/269 21.1开发任务269 21.2程序实现及分析270 21.2.1数组排序270 21.2.2List排序273 21.2.3List自动排序277 21.2.4通用输出280 21.3集合相关类库285 21.3.1Collection与Collections 286 21.3.2List与ArrayList 287 21.3.3Map与HashMap 288 21.3.4Set与TreeSet289 21.3.5泛型291 21.4实做程序292 第22章学生信息保存/295 22.1开发任务295 22.2功能实现及分析296 22.2.1文件保存功能296 22.2.2数据库保存功能 300 22.2.3重构程序结构304 22.3文件操作相关类库306 22.3.1I/O流306 22.3.2I/O操作步骤308 22.4数据库操作311 22.4.1数据库操作311 22.4.2数据库操作步骤 313 22.5实做程序315 第23章图形界面成绩管理/319 23.1开发任务319 23.2功能实现及分析321 23.2.1图形用户界面321 23.2.2成绩管理功能325 23.3图形界面基础类库334 23.3.1Java图形界面334 23.3.2组件类336 23.3.3事件类与接口339 23.4实做程序340 第24章网上学生成绩查询/343 24.1开发任务343 24.2功能实现及分析344 24.2.1简单网络通信功能 344 24.2.2网络查询348 24.3网络编程相关类库353 24.3.1Socket编程概念 353 24.3.2Socket相关类354 24.4实做程序355 第25章多用户查询学生成绩/357 25.1开发任务357 25.2功能实现及分析358 25.2.1简单多线程程序一 358 25.2.2简单多线程程序二 360 25.2.3多线程网络查询 363 25.3多线程相关类库372 25.4实做程序374 第26章基于新特性的重构和 扩展/37526.1开发任务375 26.2程序实现及分析376 26.2.1成绩排序功能重构 376 26.2.2成绩处理功能扩展 378 26.3新特性相关类库380 26.3.1Java新特性380 26.3.2函数式编程381 26.3.3流式编程383 26.4实做程序386 附录A推荐书目/388