Java学习笔记day9——匿名内部类、注解、异常及练习

【内部类知识点(2)】

1. 匿名内部类

(1)语法格式

①new 父类(){

        类的成员列表

}

②new 父类(实参列表){

        类的成员列表

}

③new 父接口(){

        类成员列表

}

(2)语法格式的解释:

①因为匿名内部类是没有名字的,一次性,只有唯一的对象,必须在声明类的同时就把对象创建好,否则后期就无法创建它的对象

即声明类的同时就把对象创建好了。

这句代码既声明了一个类,又创建了一个对象

②因为匿名内部类是没有名字的,所以创建对象时,只能用父类名或父接口名表示

同时表明了,新的匿名内部类的父类是谁,或父接口是谁

③子类在继承父类时,一定要在子类构造器的首行调用父类的构造器,默认调用父类的无参构造

2. 匿名内部类的成员

除了静态成员之外,其他成员都可以有

但是构造器无法手动编写,只能由编译器自动产生,因为类没有名字,就无法编写构造器,构造器名字必须和类名一致

通常情况下,匿名内部类不会有很多成员,而且一般不会定义自己的成员,通常都是重写父类或父接口的成员

3. 匿名内部类的使用

(1)匿名内部类的匿名对象.方法(用得少)

如:

new Object(){
    void method(){
        System.out.println("匿名内部类的使用");
    }
}.method();

(2)多态引用,通过父类或父接口的变量接受匿名子类/匿名实现类的对象,然后多态调用

abstract class Base{
    public abstract void method();
}

Base b = new Base(){
    @override
    public void method(){
        System.out.println("匿名内部类重写父类的抽象方法method");
    }
};
b.method();

(3)把匿名内部类的匿名对象直接作为另一个方法调用的实参

test(Base b = new Base(){
    @override
    public void method(){
        System.out.println("匿名内部类重写父类的抽象方法method");
    }
});

public static void test(Base b){
    b.method;
}

【注解知识点】

1.什么是注解(annotation)

形式:@注解名。

注解是一种注释。

//和/**/注释是给人看的

注解是给编译器或其他程序看的,给程序添加一些描述性/辅助性信息

2. 系统最早、最基本的三个注解

(1)@override

(2)@Deprecated

标记某个方法、类已过时

即不建议继续使用,如果继续使用会有风险

(3)@SuppressWarnings

标记某个方法、类等抑制警告

3. Junit的@Test

(1)所在类必须是public的类,而且只能有唯一的无参构造方法

(2)@Test标记的方法必须是public,void,无参,非静态的方法

(3)默认不支持键盘输入

【异常知识点】

1. 什么是异常

程序在正常情况下可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值