一段程序让你明白什么静态内部类,局部内部类,匿名内部类

本文介绍了Java内部类的三种类型:静态内部类、局部内部类和匿名内部类,并通过代码示例展示了它们的用法。内部类可以访问外部类的私有数据,提供隐藏实现细节的能力,同时简化回调函数的编写。文章还提供了函数式接口A的定义和其实现类的示例,帮助读者更好地理解内部类的概念。

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

内部类是定义在另一个类中的类。为什么需要使用内部类呢? 其主要原因有以下三点:

  • 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据。
  • 内部类可以对同一个包中的其他类隐藏起来。
  • 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。

那么接下来直接上代码来举例

public class Test {
//    静态内部类
static class C implements A {
    @Override
    public void lambad() {
        System.out.println("我是静态内部类");
    }
}

    public static void main(String[] args) {
        A object = new B();
        object.lambad();
//        静态内部类的方式
        object = new C();
        object.lambad();

//        局部内部类
        class D implements A {
            @Override
            public void lambad() {
                System.out.println("我是局部内部类");
            }
        }
        object = new D();
        object.lambad();

//        匿名内部类 没有类的名称,必须实现接口或者父类
        object = new A() {
            @Override
            public void lambad() {
                System.out.println("我是匿名内部类");
            }
        };
        object.lambad();
    }
}
//定义一个函数式接口
interface A {
    void lambad();
}
//实现类
class B implements A {

    @Override
    public void lambad() {
        System.out.println("我是普通实现类");
    }
}

 

好了,这次的文章就到这里,喜欢的同学可以点赞收藏,遇到问题,可以评论,或者留言,我一定会第一时间给到回馈,感谢观看!!

注:本文为本人学习时心得分享,有讲错或者需要改正的地方,请指正,我会虚心接受

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值