Java中的其它包无法引用缺省类(Default Package)里的类
- 模拟环境如下图所示:
简单描述:lib目录下的default-package-jar.jar
和testjar.jar
包都是自己打包生成的。它们的主要区别在于:前者的DefaultPackageTest.java
这个类是直接在其所在目录的根目录下创建的,而后者的Rubbish.java,A.java, B.java
几个类都是在com.nisifan目录(即,不是根目录)下创建的。因此,DefaultPackageTest.java
是属于default package(缺省类)的。
再看当前工程下,有Main.java
和Main01.java
两个类。而Main01.java
在当前工程的根目录下,因此它也属于default package。所以,Main01.java
中能引用DefaultPackageTest.java类,但Main.java
不能引用它,因为它属于com.mytest包。
Main.java
如下图所示:
如图所示,由于它在com.mytest包中(即第一行的 package com.mytest
),所以不能调用DefaultPackageTest
类。
Main01.java
如下图所示:
如图所示,由于Main01.java
属于default package(因为并没有 package xxx这行代码),所以它能调用同为default package的DefaultPackageTest
类。
以上。