默认包中定义的类的可访问性

时间:2018-02-16 13:24:44

标签: java class package access-modifiers

例如,我有一个Example.java文件,其中包含以下代码:

class Example { ... }

而且,在另一个文件ExamplePublic.java中我有:

public class ExamplePublic { ... }

所以,没有包定义。在这种情况下,类位于“未命名的包”中。

我想要理解的是,如果在这种情况下行为与指定包的行为相同:Example类具有“package-private”(默认)可见性(在未命名的包中),而ExamplePublic类可以从所有其他包中访问(因为它是公开的)。

或者默认包有什么变化吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

来自官方文档 Oracle

  • 访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法。访问控制有两个级别: 在顶层 - public或package-private(没有显式修饰符)。
  • 在成员级别 - public,private,protected或package-private(无显式修饰符)。
  

可以使用修饰符public声明一个类,在这种情况下,该类对所有类都可见。如果一个类没有修饰符(默认,也称为包私有),它只在自己的包中可见(包是相关类的命名组 - 您将在后面的课程中了解它们。)

答案 1 :(得分:0)

Java 6官方文档:http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.5

  

从未命名的包导入类型是编译时错误。

相关问题