gpt4 book ai didi

java - 类和字段可见性之间的相互作用

转载 作者:行者123 更新时间:2023-12-03 18:32:57 31 4
gpt4 key购买 nike

我了解到一个类可以是公共(public)的或包私有(private)的(最后一个值是默认值)。类的字段也可以是公共(public)的或包私有(private)的。这些“状态”具有相同的含义。如果某物是包私有(private)的,则它仅在同一包内可见。它是公开的,从任何地方(从任何包)都可以看到。

我不清楚这些状态如何相互作用。我尤其对以下两种情况感兴趣:

  1. 该类是公共(public)的,但它的字段是包私有(private)的。此字段是否仅在包内可见?

  2. 该类是包私有(private)的,它有一个公共(public)字段。唱到哪里?

总的来说,如果在任何情况下,对于类的任何单个组件(字段和方法)我们都指出它是公共(public)的还是包私有(private)的,那么我不明白为什么我们会在意一个类是公共(public)的还是包私有(private)的。

最佳答案

适用最严格的可见性。您的问题的答案是:

  1. 是的。
  2. 仅包。

包类中的公共(public)字段通常没有多大意义。

有一些微妙之处:私有(private)嵌套类中的私有(private)字段可以被封闭类读取(尽管由于隐式添加合成访问器,这会导致一些性能损失)。

Sun's tutorial 中有关于可见性的简短说明.另请参阅嵌套类部分。

编辑:为了您的兴趣,反射还允许篡改可见性。

关于java - 类和字段可见性之间的相互作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2417203/

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