本文对应书中第四章的总结
类
类之间关系
- 依赖
- 关联(知道、了解)
- 聚合(拥有)
- 继承
static
- 静态域
也称类域,属于类,不属于任何类的对象。而实例域,每一个对象都有其拷贝。
初始化:声明时指定初始化值、静态初始化块初始化
// static initialization block
- 静态final域(静态常量)
示例:Math.PL System.out (setOut native方法)
- 静态方法
特点:
1. 没有隐式参数
2. 可以访问静态域
3. 可通过对象调用(易混淆)
使用场景:
1. 只通过显示参数完成执行的方法(不需访问对象状态的方法)
2. 只需访问类静态域的方法
3. factoryMethod 构造对象
解决构造器问题:无法命名、改变构造类型(返回对象为子类对象)
4. main方法(可用于单元测试)
对象
对象的三个特性:行为、状态、标识
域(对象域或实例域)
声明
- private(pulic 破坏封装性)
- 可选final修饰(大都应用于基本类型primitive、不可变类Immutable)
封装的好处(提供域访问器、域更改器方法mutator methods、accessor method)
- 可以改变内部实现,只影响该类的代码
- 更改器方法可以执行错误检查
访问器
- 不要编写返回引用可变对象的访问器方法。若要返回,需先clone
- 类中的每个方法都不会改变其对象,这种类就是不可变类
- C++注释:const修饰的表示访问器方法
初始化
- 构造器中设置值(创建类时初始化默认值--不同于局部变量)
- 生命中赋值
- 初始化块(initialization block,构造器执行前执行)
方法
- 对内:访问域
类方法可以访问所属类任何对象的私有域
public
• 对外:方法调用
- 方法signature:方法名、参数类型;返回类型不属于方法签名
- 重载:方法名称相同、参数不同
- 重载解析(编译阶段)
参数
- 类型:
- 隐式(implicit-this:调用对象域、构造方法)、显式(explicit)
- 基本数据类型、对象引用
传值:无论是原始类型、还是引用类型变量,都会复制值
- 方法无法修改基本数据类型参数
- 可改变对象参数的状态
- 不能让对象参数引用新对象
包
import 类、静态域、静态方法
小结
本文总结了类和对象及其包含的方法、域等相关概念,Java是一个面向对象语言,需要支持。