Java教程

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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4