您的位置:首页 > 其它

public:接口访问权限

2013-08-22 16:30 120 查看
当你使用关键字 public,就意味着 public 之后紧跟着的成员声明对每个人都是可用的,

尤其是使用程序库的客户端程序员更是如此。假设你定义了一个包含下面编译单元的

dessert 包:

//: c05:dessert:Cookie.java

// Creates a library.

package c05.dessert;

public class Cookie {

public Cookie() {

   System.out.println("Cookie constructor");

    } 

void bite() { System.out.println("bite"); } 

} ///:~

记住,Cookie.java 产生的类文件必须位于名为 dessert 的子目录之中,该子目录在 c05

(参阅本书第 5 章)之下,而 c05 则必须位于 CLASSPATH 指定的众多路径的其中之一

的底下。不要错误地认为 java 总是将当前目录视作是查找行为的起点之一。如果你的

CLASSPATH 之中缺少一个‘.’作为路径之一的话,java 就不会查找那里。

现在如果你创建了一个使用 Cookie 的程序:

//: c05:Dinner.java

// Uses the library.

import com.bruceeckel.simpletest.*;

import c05.dessert.*;

public class Dinner {

static Test monitor = new Test();

public Dinner() {

   System.out.println("Dinner constructor");

    } 

public static void main(String[] args) {

    Cookie x = new Cookie();

//! x.bite(); // Can't access

        monitor.expect(new String[] {

"Cookie constructor"

        }); 

    } 

} ///:~

你就可以创建一个 Cookie 对象,因为 Cookie 的构造器是 public 而其自身也是 public

的。(此后我们将会对 public 类的概念了解更多。)但是,由于 bite( )只向在 dessert

包中的类提供访问权,所以 bite( ) 成员在 Dinner.java 之中是无法访问的,为此编译
器也禁止你使用它。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: