我们通常认为访问控制是“隐藏实施细节”的一种方式。将数据和方法封装到类里面之后,可生成一种数据类型,它具有自己的特性与行为,有自己的构造方法和构造对象。
public class SimpleConstructor {
public static void main(String[] args){
for (int i=0;i<10;i++)
new Rock();
}
但是我们需要对访问的那个数据类型加上限制,有两个重要原因:
1.规定使用者哪些可以访问使用,哪些是不能访问使用的。我们可以在编码结构中建立自己的内部机制,不用担心使用者将其当作接口的一部分,从而自由或者滥用这些程序。
2.我们需要将接口同实施细节分离开。若结构在一系列程序中使用,但用户除了将参数发给public接口之外,不能做其他任何事情,我们就可以改变不属于public的所有东西(如friendly protected private),同时不要求用户对他们的代码做出修改,这样安全性会更高。