内部类详解————局部内部类

本文详细介绍了Java中的局部内部类,包括其定义、实现方式及使用规则。解释了局部内部类与方法局部变量的关系,以及如何在方法内部创建局部内部类,并强调了其生命周期和访问权限的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内部类三连击:

内部类详解————匿名内部类

内部类详解————局部内部类

内部类详解————静态嵌套类

定义

方法或某个作用域内的内部类,称为局部内部类。匿名内部类就是一种局部内部类。

实现方式

public class OutterType {   
    public void function() {
        /** 局部内部类Inner*/
        class Inner {
            public void print() {
                System.out.println("局部内部类...");
            }
        }
    }
}

规则

规则一:局部内部类类似方法的局部变量,所以在类外或者类的其他方法中不能访问这个内部类,但这并不代表局部内部类的实例和定义了它的方法中的局部变量具有相同的生命周期。

注意,如果是定义在一个作用域内的局部内部类,如下的形式:

我们将局部内部类In定义在了一个if条件作用域中,因此,在if之外的部分,尽管没有离开function()方法,就会报编译错误,无法访问到In这个内部类,因此,还是需要广义的理解局部内部类的含义和访问条件,不可片面的理解为仅仅是方法中定义的内部类。

规则二:只能在方法内部,类(局部内部类)定义之后使用,不存在外部可见性问题,因此没有访问修饰符。

规则三:不能在局部内部类中使用可变的局部变量。

规则四:可以访问外围类的成员变量。如果是static方法,则只能访问static修饰的成员变量。

规则五:可以使用final 或 abstract修饰。

综上,就是局部内部类的知识,其实局部内部类的名气远没有匿名内部类的名气大,但是作为一个匿名内部类的父概念,其定义了匿名内部类和普通的局部内部类的概念和特性,因此可以作为匿名内部类的知识补充。

如有疑问,欢迎文末留言。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值