class outer
{
public void outerfunction()
{
private class inner // Line-1
{
public void showinner()
{
System.out.println("I am in Inner Class");
}
}
}
}
第 1 行:此行出错。
我知道我是否为类内部写摘要或最终。那么,没关系。为什么类内部不能是私有(private)的?
最佳答案
private
类对同一文件中的所有方法和嵌套类都是可见的。通常您会认为 private 缩小了使用范围,但在这种情况下,使用 private
您扩大了类的可见范围,Java 不可见'支持。
将方法设为私有(private)与这样做是一样的
class outer {
private class inner { // Line-1
public void showinner() {
System.out.println("I am in Inner Class");
}
}
public void outerfunction() {
}
}
这看起来不错,直到您认为嵌套类可以使用其外部上下文中的值。
class outer {
public void printInner() {
// accessible in the same .java file because we made it private
inner i = new inner();
i.showInner(); // what should `x` be?
}
public void outerfunction(final int x) {
private class inner { // Line-1
public void showinner() {
System.out.println("I am in Inner Class, x= " + x);
}
}
}
}
关于java - 为什么我们不能在方法内部声明私有(private)局部内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24400736/