-
由南邮陈杨编写的面向对象技术与UML课件及源代码
资源介绍
本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领读者从基础到各个知识点进行学习。全书内容由浅入深,并辅以大量的实例说明,书本阶段性地提供了一些实验指导。
本书提供了所有实例的源代码以及开发过程中用到的软件下载地址,供读者学习参考使用。
本书为学校教学量身定做,供高校面向对象技术相关课程使用,对于缺乏项目实战经验的程序员来说可用于快速积累项目开发经验。
本书是中南大学精品教材建设中的一本特色教材,为高校计算机相关专业提供面向对象技术和UML的讲解。本书采用Java语言进行描述,针对Java技术标准编程进行详细的讲解,以简单通俗易懂的案例,逐步引领读者从基础到各个知识点进行学习。本书涵盖了JavaSE开发环境配置、程序设计基础、面向对象相关技术、常用API、UML基础知识。在章节中穿插了上机习题,并提供了答案,用于对该章内容进行阶段性总结演练。
作者长期从事教学工作,积累了丰富的经验,其“实战教学法”取得了很好的效果。本书适合教学。书中章节安排适当,将习题融于讲解的过程中,教师可以根据情况选用,也可以进行适当增减。
本书的知识体系结构如下所示,遵循了循序渐进的原则,逐步引领读者从基础到各个知识点进行学习。
上篇面向对象技术
第1章Java入门
第2章程序设计基础: 变量及其运算
第3章程序设计基础: 流程控制和数组
第4章实验指导1
第5章类、对象和成员
第6章封装
第7章继承和多态
第8章实验指导2
第9章异常处理
第10章Java常用API
第11章Java IO操作
第12章多线程开发
第13章反射技术
第14章实验指导3
下篇UML
第15章UML入门
第16章用例图
第17章类图和对象图
第18章实验指导4
第19章顺序图、协作图、状态图和活动图
第20章包图、构件图和部署图
第21章实验指导5
本书提供了全书所有实例的源代码,供读者学习参考使用,所有程序均经过了作者精心的调试。
由于时间仓促和作者水平有限,书中的错误和不妥之处敬请读者批评指正。
有关本书的意见反馈和咨询,读者可在清华大学出版社相关版块中与作者进行交流。
郭克华
2013年11月
目录
上篇面向对象技术
第1章Java入门
1.1认识Java
1.1.1认识编程语言
1.1.2Java的来历
1.1.3Java为什么流行
1.1.4Java的三个版本
1.1.5编程前的准备工作
1.2安装JDK
1.2.1获取JDK
1.2.2安装JDK步骤
1.2.3安装目录介绍
1.2.4环境变量设置
1.3开发第一个Java程序
1.3.1如何编写源代码
1.3.2如何将源代码编译成.class文件
1.3.3如何执行.class文件
1.3.4新手常见错误
1.4用Eclipse开发Java程序
1.4.1Eclipse的概念
1.4.2安装Eclipse
1.4.3如何建立项目
1.4.4如何开发Java程序
1.4.5如何维护项目
1.5小结
第2章程序设计基础:变量及其运算
2.1认识变量
2.1.1变量的定义
2.1.2变量有哪些类型
2.2如何使用变量
2.2.1如何使用整型变量
2.2.2如何使用浮点型变量
2.2.3如何使用字符型变量
2.2.4如何使用布尔型变量
2.2.5基本数据类型之间的类型转换
2.2.6基本数据类型和字符串之间的转换
2.2.7变量的作用范围
2.3注释的书写
2.4Java中的运算
2.4.1算术运算
2.4.2赋值运算
2.4.3关系运算
2.4.4逻辑运算
2.4.5运算符的优先级
2.5小结
第3章程序设计基础:流程控制和数组
3.1判断结构
3.1.1为什么需要判断结构
3.1.2if结构
3.1.3switch结构
3.2认识循环结构
3.2.1为什么需要循环结构
3.2.2while循环
3.2.3dowhile循环
3.2.4for循环
3.2.5循环嵌套
3.2.6break和continue
3.3数组
3.3.1为什么需要数组
3.3.2如何定义数组
3.3.3如何使用数组
3.3.4数组的引用性质
3.3.5数组的应用
3.3.6多维数组
3.4小结
第4章实验指导1
4.1关于变量和数据类型的实践
4.2流程控制和数组的综合实践
第5章类、对象和成员
5.1认识类和对象
5.1.1为什么需要类
5.1.2如何定义类
5.1.3如何使用类实例化对象
5.1.4如何访问对象中的成员变量
5.1.5对象的引用性质
5.2认识成员函数
5.2.1为什么需要函数
5.2.2如何定义和使用成员函数
5.2.3函数参数的传递
5.2.4认识函数重载
5.3认识构造函数
5.3.1为什么需要构造函数
5.3.2如何定义和使用构造函数
5.4静态变量和静态函数
5.4.1为什么需要静态变量
5.4.2静态变量的常见应用
5.4.3认识静态函数
5.4.4静态代码块
5.5小结
第6章封装
6.1使用封装
6.1.1为什么需要封装
6.1.2如何实现封装
6.2使用包
6.2.1为什么需要包
6.2.2如何将类放在包中
6.2.3如何访问包中的类
6.3使用访问控制修饰符
6.3.1什么是访问控制修饰符
6.3.2类的访问控制修饰符
6.3.3成员的访问控制修饰符
6.4使用类中类
6.5小结
第7章继承和多态
7.1使用继承
7.1.1为什么需要继承
7.1.2如何实现继承
7.1.3继承的底层本质
7.2成员的覆盖
7.2.1什么是成员覆盖
7.2.2成员覆盖有何作用
7.3使用多态性
7.3.1什么是多态
7.3.2如何使用多态性
7.3.3父子类对象的类型转换
7.4抽象类和接口
7.4.1为什么需要抽象类
7.4.2为什么需要接口
7.5其他内容
7.5.1final关键字
7.5.2Object类
7.6一些工具的使用
7.6.1将字节码打包发布
7.6.2文档的使用
7.7小结
第8章实验指导2
8.1单例模式的设计
8.1.1需求简介
8.1.2不用单例模式的效果
8.1.3最原始的单例模式
8.1.4首次改进
8.1.5再次改进
8.1.6思考题
8.2利用继承和多态扩充程序功能
8.2.1需求简介
8.2.2实现方法
8.2.3出现的问题
8.2.4改进
8.2.5测试
第9章异常处理
9.1认识异常
9.1.1生活中的异常
9.1.2软件中的异常
9.1.3为什么要处理异常
9.1.4异常机理
9.1.5常见异常
9.2异常的就地捕获
9.2.1为什么要就地捕获
9.2.2如何就地捕获异常
9.2.3如何捕获多种异常
9.2.4用finally保证安全性
9.3异常的向前抛出
9.3.1为什么要向前抛出
9.3.2如何向前抛出
9.4自定义异常
9.4.1为什么需要自定义异常
9.4.2如何自定义异常
9.5小结
第10章Java常用API
10.1数值运算
10.1.1用Math类实现数值运算
10.1.2实现随机数
10.2用String类进行字符串处理
10.3用StringBuffer类进行字符串处理
10.4基本数据类型的包装类
10.4.1认识包装类
10.4.2通过包装类进行数据转换
10.5认识Java集合
10.5.1为什么需要集合
10.5.2Java中的集合
10.6使用一维集合
10.6.1认识一维集合
10.6.2使用List集合
10.6.3使用Set集合
10.6.4使用Collections类对集合进行处理
10.6.5使用泛型简化集合操作
10.7Java中的二维集合
10.7.1使用Map集合
10.7.2使用Hashtable和Properties
10.8小结
第11章Java IO操作
11.1认识IO操作
11.2用File类操作文件
11.2.1认识File类
11.2.2使用File类操作文件
11.2.3使用File类操作目录
11.3字节流的输入输出
11.3.1认识字节流
11.3.2如何读写文件
11.3.3如何读写对象
11.4字符流的输入输出
11.4.1认识字符流
11.4.2如何读写文件
11.4.3如何进行键盘输入
11.5和IO操作相关的其他类
11.5.1用RandomAccessFile类进行文件读写
11.5.2使用Properties类
11.6小结
第12章多线程开发
12.1认识多线程
12.1.1为什么需要多线程
12.1.2继承Thread类开发多线程
12.1.3实现Runnable接口开发多线程
12.1.4两种方法有何区别
12.2控制线程运行
12.2.1为什么要控制线程运行
12.2.2传统方法的安全问题
12.2.3如何控制线程的运行
12.3线程同步安全
12.3.1什么是线程同步
12.3.2一个有问题的案例
12.3.3如何解决
12.3.4小心线程死锁
12.4认识定时器
12.4.1为什么需要定时器
12.4.2如何使用定时器
12.5小结
第13章反射技术
13.1为什么要学习反射
13.1.1引入配置文件
13.1.2配置文件遇到的问题
13.2认识Class类
13.2.1什么是Class类
13.2.2如何获取一个类对应的Class对象
13.2.3如何获取类中的成员信息
13.3通过反射机制访问对象
13.3.1如何实例化对象
13.3.2如何给成员变量赋值
13.3.3如何调用成员函数
13.4何时使用反射
13.5动态异常处理框架
13.5.1框架功能简介
13.5.2重要技术
13.5.3框架代码编写
13.5.4使用该框架
13.6小结
第14章实验指导3
14.1字符频率统计软件
14.1.1软件功能简介
14.1.2重要技术
14.1.3项目结构
14.1.4代码编写
14.1.5思考题
14.2文本翻译软件
14.2.1软件功能简介
14.2.2重要技术
14.2.3项目结构
14.2.4代码编写
14.2.5思考题
14.3用享元模式优化程序性能
14.3.1为什么需要享元模式
14.3.2重要技术
14.3.3代码编写
14.3.4思考题
下篇UML
第15章UML入门
15.1认识UML
15.1.1为什么需要UML
15.1.2UML的来历
15.2用Rational Rose进行UML建模
15.2.1什么是Rational Rose
15.2.2安装Rational Rose
15.2.3如何使用Rational Rose
15.2.4UML图的种类
15.3小结
第16章用例图
16.1认识用例图
16.1.1为什么需要用例图
16.1.2什么是用例图
16.2详解用例图
16.2.1系统边界
16.2.2参与者
16.2.3用例
16.2.4箭头
16.2.5注释
16.2.6用Rational Rose画用例图
16.2.7用例规约
16.3一个案例
16.3.1案例描述
16.3.2画出用例图
16.3.3写出用例描述
16.4小结
第17章类图和对象图
17.1认识类图
17.1.1为什么需要类图
17.1.2什么是类图
17.2详解类图
17.2.1类
17.2.2箭头
17.2.3注释
17.2.4用Rational Rose画类图
17.3对象图
17.4小结
第18章实验指导4
18.1用例图练习
18.1.1软件功能简介
18.1.2识别系统中的参与者和用例
18.1.3画出用例图
18.1.4用例描述
18.2类图练习
18.2.1练习1: 根据代码画出类图
18.2.2练习2: 根据需求构建类图
18.3思考题
第19章顺序图、协作图、状态图和活动图
19.1顺序图
19.1.1什么是顺序图
19.1.2详解顺序图
19.1.3用Rational Rose画顺序图
19.2协作图
19.2.1什么是协作图
19.2.2详解协作图
19.2.3用Rational Rose画协作图
19.3状态图
19.3.1什么是状态图
19.3.2详解状态图
19.3.3用Rational Rose画状态图
19.4活动图
19.4.1什么是活动图
19.4.2详解活动图
19.4.3用Rational Rose画活动图
19.5小结
第20章包图、构件图和部署图
20.1包图
20.1.1什么是包图
20.1.2详解包图
20.1.3用Rational Rose画包图
20.2构件图
20.2.1什么是构件图
20.2.2详解构件图
20.2.3用Rational Rose画构件图
20.3部署图
20.3.1什么是部署图
20.3.2详解部署图
20.3.3用Rational Rose画部署图
20.4小结
第21章实验指导5
21.1顺序图、协作图练习
21.1.1功能简介
21.1.2创建顺序图
21.1.3创建协作图
21.2状态图、活动图练习
21.2.1功能简介
21.2.2创建状态图
21.2.3创建活动图
21.3包图、构件图和部署图练习