为什么进行访问权限控制
1.为了使用户不要碰触那些他们不该碰触的部分,这些部分对于类内部的操作是必要的,但是并不属于客户度程序员所需接口的一部分。
作为一名类库设计人员,你会尽可能的把一切方法都设计成private,而仅向客户端程序员公开你愿意让他们使用的方法。这样也简化了他们
对类的理解。
2.为了让类库设计者可以更改类的内部工作方式,而不必担心这会对客户端程序员产生重大影响。比如,最初可能会以某种方式创建一个
类,然后发现如果更改程序结构会大大提高运行速度,如果接口和实现可以明确地隔离和加以保护,那么就可以实现这一目的。而不用强
制客户端程序员重新编写代码。
访问权限的控制常被称为具体实现的隐藏。把数据和方法包装进类,以及具体实现的隐藏,常被共同称为封装。其结果是一个同时带有特征和行为的数据类型。
设计一个类只能被实例化指定次数
public class Soup {
public static int number;
private Soup() {
}
public static Soup makeSoup() {
number++;
System.out.println(number);
if (number >= 5) {
System.out.println("Sout实例化超过5次,不在实例化!");
return null;
}
return new Soup();
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
Soup soup = Soup.makeSoup();
}
}
}
在.java文件中每个类都会有一个输出文件也就是说一个.java文件有可能会对应多个.class文件
本文探讨了访问权限控制在类库设计中的核心作用,包括防止用户访问不应触及的内部操作,简化客户端程序员对类的理解,以及允许设计者更改内部工作方式而不影响客户端。文章还介绍了如何通过封装实现具体实现的隐藏,以及一个限制类实例化次数的设计示例。

被折叠的 条评论
为什么被折叠?



