控制对类成员的访问权限有两个原因:
援引自《Java编程思想》一书:
1.使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分。因此,将方法和域指定成private,对客户端程序员而言是一种服务。因为这样他们可以很清楚地看到什么对他们重要,什么是他们可以忽略的,这样简化了他们对类的理解。
2.第二个原因,也是最重要的原因。是为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大的影响。例如,最初可能会以某种方式创建一个类,然后发现如果更改程序结构,可以大大提高运行速度。如果接口和实现可以被明确地隔离和加以保护,那么久可以实现这一目的,而不必强制客户端程序员重新编写代码。访问权限控制可以确保不回又任何客户端程序员一类与某个类的底层实现的任何部分。