java局部内部类详细介绍

KLQ 2020-09-07 15:18:39 java常见问答 10006

之前给大家介绍了java静态内部类,下面的文章内容要给大家介绍的就是java局部内部类,主要包括了是什么以及特点等方面的知识。

局部内部类是指在一个方法中定义的内部类。

示例代码:

public class Test
{
    public void method()
    {
        class Inner
        {
            // 局部内部类
        }
    }
}

局部内部类特点:

1、局部内部类和局部变量一样,不可以使用访问控制修饰符(public、private和protected)和 static修饰符修饰;

2、局部内部类只在当前方法当中有效;

public class Test
{
    Inner i = new Inner(); // 编译出错
    Test.Inner ti = new Test.Inner(); // 编译出错
    Test.Inner ti2 = new Test()
        .new Inner(); // 编译出错
    public void method()
    {
        class Inner
        {}
        Inner i = new Inner();
    }
}

3、局部内部类当中不可以定义static成员;

4、局部内部类当中还可以包含内部类,可是,这些内部类也不可以使用访问控制修饰符(public、private和protected)和static修饰符修饰;

5、在局部内部类当中,可以访问外部类的所有成员;

6、在局部内部类当中,只能够访问当前方法当中final类型的参数和变量。

假如,方法当中的成员和外部类当中的成员同名,那么就可以使用<OuterClassName>.this.<MemberName>的形式访问外部类中的成员;

public class Test
{
    int a = 0;
    int d = 0;
    public void method()
    {
        int b = 0;
        final int c = 0;
        final int d = 10;
        class Inner
        {
            int a2 = a; // 访问外部类中的成员
            // int b2 = b;    // 编译出错
            int c2 = c; // 访问方法中的成员
            int d2 = d; // 访问方法中的成员
            int d3 = Test.this.d; //访问外部类中的成员
        }
        Inner i = new Inner();
        System.out.println(i.d2); // 输出10
        System.out.println(i.d3); // 输出0
    }
    public static void main(String[] args)
    {
        Test t = new Test();
        t.method();
    }
}

以上就是对于java局部内部类的一个介绍了,你都清楚了吧。

请多多的关注奇Q工具网吧,有更多的java基础知识,可以为你分享哦。

推荐阅读:

java内部类是什么?详细介绍

java内部类最简单的应用分享,使用方法实例

java实例内部类详细介绍