gpt4 book ai didi

java - 是否需要在私有(private)内部类中声明访问修饰符

转载 作者:行者123 更新时间:2023-12-03 08:20:48 27 4
gpt4 key购买 nike

假设我有这样一个类:

public class OuterClass {
//...
private class InnerClass {
private int x; // This variable makes sense
public int y; // Is there any use for this?
}
}

在上面的代码中,由于内部类是私有(private)的,只有外部类可以访问它的所有变量,包括私有(private)变量。内部类本身对任何其他类不可见,但封闭的外部类除外。

因此,即使上面的变量 y 是公共(public)的,它也不能被外部类以外的任何其他类访问。

似乎私有(private)内部类中的所有访问修饰符默认都是私有(private)的,不是吗?

鉴于此,是否有任何理由为内部类的任何成员声明访问修饰符?

最佳答案

访问修饰符可能重要的情况是重写父类(super class)方法的方法(例如 toString())。您不能降低重写方法的可见性。 toString() 必须始终声明为 public 才能编译该类。

当外部类访问私有(private)成员时,编译器会创建一个合成方法。这种合成方法只在嵌套类的.class文件中可见。

当内部类本身不是私有(private)时,访问修饰符范围很重要的另一种情况。

关于java - 是否需要在私有(private)内部类中声明访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906896/

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