为什么我们不能在方法中声明私有本地内部类?

时间:2014-06-25 05:21:49

标签: java class

class outer
{
    public void outerfunction()
    {

        private class inner // Line-1
        {
                public void showinner()
                {
                    System.out.println("I am in Inner Class");

                }

        }

    }
}

第1行:此行显示错误。

我知道我是否为内心写了抽象或最终。那很好。为什么班内不能私有?

1 个答案:

答案 0 :(得分:3)

private类对同一文件中的所有方法和嵌套类都是可见的。通常你会认为私有缩小了使用范围,但是在这种情况下使用private扩展这个类的范围是以Java没有的方式显示的。支持。

将方法设为私有与执行此操作相同

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);    
              }
          }    
    }
}