1、从构造器开始
- 构造器总是伴随着 new 操作符的执行被调用,而不能对一个已经存在的对象调用构造器来重新设置实例域的目的。
- 不要在构造器中定义与实例域重名的局部变量,不然会屏蔽了同名的实例域。
2、隐式参数和显式参数
- 隐式参数是出现在方法名前的类对象,显式参数位于方法名后面的括号中。
- 使用 this 可以区分开隐式参数的类对象的实例域和局部变量区分开来:
public void raiseSalary(double byPercent) {
double raise = this.salary * byPercent / 100;
this.salary += raise;
}//关键词 this 表示隐式参数,这种风格可以将实例域变量和局部变量明显区分开来
3、封装的优点
1、一个私有的数据域
2、一个公有的域访问器方法
3、一个公有的域更改器方法
- 注意:不要编写返回引用可变对象的访问器方法,这破坏了封装性。
4、基于类的访问权限
一个方法可以访问所属类的所有对象的私有对象
5、final 实例域
final 修饰符大都应用于基本(primitive)类型域,或不可变(immutable)类的域(如果类中的没有方法都不会改变其对象,这种类就是不可变得类)