作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这样一个类:
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/
我是一名优秀的程序员,十分优秀!