gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:38 26 4
gpt4 key购买 nike

我才知道

A class may be declared with the modifier public, in which case that class is visible to all classes everywhere. If a class has no modifier (the default, also known as package-private), it is visible only within its own package.

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

那么,它是如何工作的呢?在包含公共(public)类的包被导入的条件下,公共(public)类是否对所有类都可见?或者没有这样的条件?包私有(private)类呢?无论是否导入包含包,它们都是不可见的?

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

最佳答案

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

import java.util.*;

class ImportTests {
private Collection collection;
}

编译成与此类相同的代码

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

第一个类中的 import 语句不会改变 Collectionjava.util 中的任何其他类的可见性 package it只是让 ImportTests 类可以引用 Collection 而无需完全限定名称。

关于java - 导入包会改变类的可见性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2398050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com