Java 匿名内部类:概念、应用与实践

专栏【Java

欢迎并且感谢大家指出我的问题🥰

愿大家在努力的路上都能取得收获

目录

一、什么是 Java 匿名内部类

二、Java 匿名内部类的特点

没有类名

定义和实例化同时进行

可以访问外部类的成员

作用域有限

三、Java 匿名内部类的使用场景

事件处理

作为方法参数传递

实现回调函数

四、Java 匿名内部类的语法规则

继承类的匿名内部类语法

实现接口的匿名内部类语法

注意事项

五、Java 匿名内部类与普通内部类的区别

定义方式

访问修饰符

构造函数

复用性

六、总结

   在 Java 编程的奇妙世界里,匿名内部类是一种独特且强大的编程结构,它为我们提供了更加灵活和简洁的代码编写方式。今天,就让我们一同深入探索 Java 匿名内部类的奥秘。

一、什么是 Java 匿名内部类

        匿名内部类,从名字上就可以看出它的独特之处 —— 没有明确的类名。它是在需要使用某个类的实例的地方,直接定义并创建该类的一个子类对象。这个子类可以重写父类或实现接口中的方法,并且不需要为这个子类单独命名。

例如,当我们有一个接口Runnable,它只有一个run方法:

public interface Runnable {

void run();

}

通常情况下,我们实现这个接口可能会定义一个类:

class MyRunnable implements Runnable {

@Override

public void run() {

System.out.println("This is a normal implementation of Runnable.");

}

}

然后创建这个类的实例来使用:

MyRunnable myRunnable = new MyRunnable();

myRunnable.run();

如果这个接口我们只用一次,那未免也太浪费了,所以使用匿名内部类,我们可以简化这个过程:

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("This is an anonymous inner class implementation of Runnable.");
    }
};
runnable.run();

在这个例子中,new Runnable() {... }就是一个匿名内部类,它实现了Runnable接口,并且直接创建了一个该接口的实例,而无需单独定义一个命名类。

二、Java 匿名内部类的特点

没有类名

这是匿名内部类最显著的特点。由于没有类名,它只能在定义的地方被使用一次,并且不能在其他地方复用。这种特性使得代码更加紧凑,适用于只需要使用一次的类实现。

定义和实例化同时进行

匿名内部类在定义的同时就创建了一个实例,不需要像普通类那样先定义类,再创建实例。这种方式减少了代码的冗余,提高了代码的编写效率。

可以访问外部类的成员

匿名内部类可以访问其外部类的成员,包括私有成员。这是因为匿名内部类与外部类之间存在一种特殊的关联,它可以直接访问外部类的状态和行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值