猿教程 Logo

Java 局部内部类

在方法中创建的类在java中被称为局部内部类。 如果你想调用局部内部类的方法,你必须在方法中实例化这个类。


Java局部内部类示例

相关实例:

public class localInner1{
 private int data=30;//instance variable
 void display(){
  class Local{
   void msg(){System.out.println(data);}
  }
  Local l=new Local();
  l.msg();
 }
 public static void main(String args[]){
  localInner1 obj=new localInner1();
  obj.display();
 }
}
输出结果:
30

内部类由编译器生成)

在这种情况下,编译器创建一个名为Simple $ 1Local的类,它具有外部类的引用。

相关实例:

import java.io.PrintStream;
class localInner1$Local
{
    final localInner1 this$0;
    localInner1$Local()
    {   
        super();
        this$0 = Simple.this;
    }
    void msg()
    {
        System.out.println(localInner1.access$000(localInner1.this));
    }
}

规则:局部变量不能是私有的,公共的或受保护的。


Java局部内部类的规则

1)局部内部类不能从方法外部调用。

2)局部内部类不能访问非最终局部变量,直到JDK 1.7。 从JDK 1.8开始,可以访问局部内部类中的非最终局部变量。

带局部变量的局部内部类的示例

class localInner2{
 private int data=30;//instance variable
 void display(){
  int value=50;//local variable must be final till jdk 1.7 only
  class Local{
   void msg(){System.out.println(value);}
  }
  Local l=new Local();
  l.msg();
 }
 public static void main(String args[]){
  localInner2 obj=new localInner2();
  obj.display();
 }
}
输出结果:
50


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/java-local-inner-class.html