包的导入会改变类的可见性吗?

2024-03-05

我刚刚了解到

一个类可以用 修饰符 public,在这种情况下 类对所有类可见 到处。如果一个类没有修饰符 (默认值,也称为 包私有),仅可见 在它自己的包中。

这是一个明确的声明。但这些信息干扰了我对包导入的理解(这很容易出错)。我认为导入包会使导入包中的类对导入类可见。

那么它是怎样工作的?公共类对任何地方的所有类都可见吗在条件下包含公共类的包被导入了吗?或者说没有这个条件?包私有类怎么样?无论包含的包是否导入,它们都是不可见的?

添加: 在我看来,我得到了两个答案,它们被标记为好(已投票)并且相互矛盾。


导入类不会以任何方式改变其可见性。将一个类导入到另一个类或多或少只是一种使源代码可读的方法,因此您不必始终放入完全限定的类。比如这个类

import java.util.*;

class ImportTests {
    private Collection collection;
}

编译为与该类相同的代码

class ImportTests {
    private java.util.Collection collection;
}

The import第一类中的语句不会改变的可见性Collection或任何其他类内java.util包装它只是让它这样ImportTests类可以参考Collection没有完全限定的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包的导入会改变类的可见性吗? 的相关文章

随机推荐