匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口

本文深入探讨了Java中匿名内部类的特性和使用场景,包括其实现接口和继承类的方式,以及其在代码中的紧凑性和简洁性。同时,文章也讲解了异常处理的重要性,强调了如何通过预设方案应对程序可能遇到的错误,确保系统的健壮性。

匿名内部类(必须掌握):
匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。
IA被定义为接口。
IA I=new IA(){};
注:一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们使用其父类名。
因其为局部内部类,那么局部内部类的所有限制都对其生效。
匿名内部类是唯一一种无构造方法类。
匿名内部类在编译的时候由系统自动起名Out$1.class。
如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。
因匿名内部类无构造方法,所以其使用范围非常的有限。
(下午:)Exception(例外/异常)(教程上的MODEL7)
对于程序可能出现的错误应该做出预案。
例外是程序中所有出乎意料的结果。(关系到系统的健壮性)

package TomText;
//测试成员变量修饰符的作用。
public class TomText_45 {
    private int num=5;            //私有作用域,本类可见
    public int setTom(int num ){            //公共作用域
        return num;             // get 方法返回成员变量num的值
    }
    public void getTom(){
        this.setTom(num);
    }


    public static void main(String [ ] args){
        TomText_45 ft=new TomText_45( );
        ft.getTom();            //正确访问
        //int s=ft.num;            //不能访问FieldTest类中私有成员变量num
        System.out.println("t=" +ft.num);
        //System.out.println(s);
    }

}

是的,匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口或继承类的一种方式。匿名内部类没有显式的类名,而是在定义时直接实现接口或继承类,并使用大括号{}来封装实现代码。
例如,下面是一个使用匿名内部类实现接口的示例:

interface Greeting {
    void sayHello();
}
public class Main {
    public static void main(String[] args) {
        Greeting greeting = new Greeting() {
            @Override
            public void sayHello() {
                System.out.println("Hello, world!");
            }
        };
        greeting.sayHello(); // 输出 "Hello, world!"
    }
}

在上面的示例中,我们定义了一个接口Greeting,它包含一个方法sayHello()。然后,在main()方法中,我们使用匿名内部类实现了Greeting接口,并实现了sayHello()方法。由于没有显式的类名,我们使用大括号{}来封装实现代码。最后,我们创建了一个Greeting对象,并调用了sayHello()方法。
需要注意的是,匿名内部类只能用于实现接口或继承类,不能用于定义新的类。另外,由于没有显式的类名,匿名内部类的代码往往更加紧凑和简洁。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值