面向对象程序设计概述
面向对象程序设计,简称OOP。
在类之间,最常见的关系有:
- 依赖("uses-a"):类A的方法操纵类B的对象。
- 聚合("has-a"):类A的对象包含类B的对象。
- 继承("is-a"):用于表示特殊与一般关系。
很多程序员采用UML(Unified Modeling Language,统一建模语言)绘制类图,用来描述类之间的关系。类用矩形表示,类之间的关系用带有各种修饰的箭头表示。
用户自定义类
不要编写返回引用可变对象的访问器方法,这样可能导致封装的破坏。例如:
class Employee{
private Date hireDay;
public Date getHireDay(){
return hireDay;
}
Employee harry = ...
Date d = harry.getHireDay();
这样,对d调用更改器方法就可以自动地改变这个雇员对象的私有状态。
final实例域
将实例域定义为final,则必须确保在每一个构造器执行后,这个域的值被设置,并且在后面的操作中,不能够对其再进行修改。
final修饰符大多应用于基本类型域或不可变类的域(如果类中的每个方法都不会改变其对象,则为不可变的类,如String类)。而对于可变的类,使用final修饰符仅表示存储在某变量中的对象引用在对象构造后不能被改变,而并不意味着该变量是个常量。任何方法都可以对该变量引用的对象调用更改器。
静态域和静态方法
用static修饰符。建议使用类名,而不是对象来调用静态方法。
在下面两种情况下使用静态方法:
- 一个方法不需要访问对象状态,其所需参数都是通过显式参数提供。
- 一个方法只需要访问类的静态域。