gpt4 book ai didi

java - 内部类中私有(private)变量的范围

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

考虑以下代码:

public class Foo
{
class Bar
{
private String barbar;

public Bar( String b ) { barbar = b; }
}

class Meh
{
Bar b = new Bar("BAR!");

public void displayName() {
System.out.println( b.barbar );
}
}
}

Java 允许类 Meh 访问私有(private)实例变量 barbar,该变量在 Bar 中声明为 private >.

我知道这个问题之前已经被问过here 。然而,答案只是基本上重申了观察到的范围是什么(barbar可以在类Foo的大括号内访问),但没有提供任何解释。经过一番谷歌搜索后,我无法对这种行为进行很好的讨论。我想知道的是这种范围界定行为是否有具体的理由。我希望 barbar 是类 Bar 的私有(private)“大括号内”。

最佳答案

其基本方面是 inner classes (与静态嵌套类相对)是其封闭类的一部分。它们并不与它分离,也不彼此分离。因此,就像封闭类的其他部分(构造函数和方法)可以访问其所有私有(private)信息一样,内部类的所有成员也是如此。从某种意义上说,内部类有点虚构,我们将其用作方便的抽象机制。由于内部类是封闭类的一部分,因此它们的私有(private)信息也是其私有(private)信息,因此与其他内部类共享。

关于java - 内部类中私有(private)变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171064/

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