public:接口访问权限

本文通过具体的Java代码示例解释了public访问修饰符的作用范围,展示了如何在一个类中声明公共成员,并讨论了当方法未标记为public时的访问限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你使用关键字 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 之中是无法访问的,为此编译

器也禁止你使用它。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值