面向对象程序设计概述
- OOP
- 结构化过程化程序设计
- 对象
- 类
- 类构造对象的过程称为创建类的实例
- 封装
- 实例域
- 方法
- 对象状态
- 实现封装的关键在于绝不让类中的方法直接方位其他类的实例域
- 继承
- 对象
- 对象的行为
- 对象的状态
- 对象标识
- 识别类
- 类之间的关系
- 依赖(use-a)
- 聚合(has-a)
- 继承(is-a)
- 类之间的关系及UML符号
使用预定义类
- 对象与对象变量
- LocalDate类
- 更改器方法和访问器方法
自定义类
- 构造器
- 隐式参数,显示参数
- 封装的优点
- 基于类的访问权限
- 私有方法
- final实例域
静态域,静态方法
- 静态域
- 静态常量
- 静态方法
- 工厂方法
- main方法
方法参数
- 按值调用(Java使用)
- 按引用调用
- 参数类型
- 基本数据类型
- 对象引用
对象构造
- 重载
- 默认域初始化
域将被默认初始化,但局部变量必须明确初始化
- 无参数构造器
- 显示域初始化(在执行构造器之间赋值)
- 参数名
- 调用另一个构造器(this(...))
- 初始化块
调用构造器的具体步骤
- 所有数据域被默认初始化
- 按照在类的声明中的顺序依次执行域初始化和块初始化
- 如果构造器第一行调用了第二个构造器,则执行第二个构造器
- 执行这个构造器主体
静态初始化块将在类被加载时执行
- 对象析构与finalize方法
不要依赖finalize方法释放短缺资源,该方法由垃圾回收器执行
包
包用于将类组织起来
- 导入类
- 静态导入
- 将类放入包中
- 包作用域
类路径
- 文件系统子目录
- Jar包
- 类路径之间用分号:相隔
- javac编译器总是在当前路径查找文件
- Java虚拟机如果未指定类路径,包含当前目录,如果指定了类路径,必须显示包含当前目录(.)才包含当前目录
- 设置类路径
- 命令选项
java -classpath /home/chenyq/classdir:.:/home/usr/archives/archives.jar Test
- CLASSPATH环境变量
#Linux
export CLASSPATH=/home/chenyq/classdir:.:/home/usr/archives/archives.jar
#Windows
set CLASSPATH=C:\classdir:.:C:\archives\archives.jar
文档注释
- javadoc程序
- 应该为包,公有类与接口,共有的和受保护的构造器和方法,公有和受保护的域
- 类注释
- 方法注释
- 域注释
- 通用注释
- @author
- @version
- @since
- @deprecated
- @see
- 包与概述注释
- 注释抽取
javadoc -d docDir packageDir
类设计技巧
- 一定要保证数据私有
- 一定要对数据进行初始化
- 不要在类中使用过多的基本类型
- 不是所有的域都需要独立的域访问器和域更改器
- 将职责过多的类进行分解
- 类名和方法名要能够体现他们的职责
- 有限使用不可变的类
网友评论