缺省包(default package)

你会惊异地发现下面的程序代码虽然看起来是破坏了上述规则,但它仍可以进行编译。

 

//:c05:Cake.java

// Accesses aclass in a separate compilation unit.

importcom.bruceeckel.simpletest.*;

 

class Cake {

static Test monitor = new Test();

public staticvoid main(String[]args) {

        Pie x = new Pie();

    x.f();

        monitor.expect(new String[] {

"Pie.f()"

        });

    }

///:~

 

在第二个处于相同目录的文件中:

 

//:c05:Pie.java

// The otherclass.

class Pie {

void f() {System.out.println("Pie.f()"); }

///:~

 

最初你或许会认为这两个文件毫不相关,但 Cake 却可以创建一个 Pie 对象并调用它的 f( )

方法!(记住,为了使文件可以被编译,在你的 CLASSPATH 之中一定要有‘.’。)你通常

会认为 Pief( )享有包访问权限,因而是不可以为 Cake 所用的。它们的确享有包访问

权限,但这只是部分正确的。Cake.java 可以访问它们的原因是因为它们同处于一个相同

的目录并且没有给自己设定任何包名称。Java 将这样的文件自动看作是隶属于该目录的缺

省包之中,于是它们为该目录中所有其他的文件都提供了包访问权限。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值