gpt4 book ai didi

java - 字段被声明为私有(private),但我可以直接访问

转载 作者:行者123 更新时间:2023-12-01 07:26:14 26 4
gpt4 key购买 nike

我有一个类Foo,它扩展了Dialog (SWT)。
我定义了一个数据成员private Bazz bazz

在这个类中,我定义了一个名为 GetOkListener() 的方法,它基本上返回一个 SelectionListener 对象。

在方法内public void widgetSelected(SelectionEvent arg0)
我正在像这样访问 bazz:Foo.this.bazz

我的问题是,
这怎么可能? bazz 定义为 private

此类位于Foo extends Dialog

@Override
protected SelectionListener GetOkListener() {

return new SelectionListener() {

public void widgetSelected(SelectionEvent arg0) {

System.out.println(CreateAlbumDialog.this.album);
}

public void widgetDefaultSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub
}
};
}

最佳答案

您有一个名为 Foo 的外部类,它有一个名为 buzz 的私有(private)字段。在 Foo 中,您将创建一个匿名内部类,它是 SelectionListener 的实现。

这个匿名内部类Foo非静态内部类(默认情况下)。根据java规则,非静态内部类可以访问封闭类的所有字段(包括私有(private)字段)。

这是JLS guidelines表述相同。

关于java - 字段被声明为私有(private),但我可以直接访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123621/

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