内部类----静态内部类,局部内部类,匿名内部类

静态内部类
定义:定义在方法以外类以内的内部类被static修饰
创建对象语法:外部类名.内部类名=new 外部类名.内部类名();
静态内部类中可以定义非静态成员与静态成员
调用静态内部类的属性方法:
语法;外部类名.内部类名.属性名或方法名
静态内部类只能直接访问外部类的静态成员 不能访问非静态成员
局部内部类
定义在方法以内的类
创建局部内部类的对象,需要在定义它的方法内部完成对象的创建,同时创建对象应该在类定义以后位置(先定义类,再
创建对象)
***注意***局部内部类可以定义在成员方法也可以定义在静态方法
局部内部类可以直接访问外部类成员(静态成员+非静态成员)
局部内部类可以访问定义它的方法内部的局部变量,但是局部变量必须被final修饰,才能被局部内部类访问。
匿名内部类
定义在方法体内 必须继承一个父类或实现一个接口匿名内部类的定义和对象的创建一起完成;并且基于一个匿名内部类只能创建该类的一个对象
语法;接口名 引用=new 接口名()->{实现部分};
lamabd表达式
实现函数式接口并完成对象的创建,是匿名内部类的简化形式。
语法 接口名 引用=(实参){实现};
应用场景:当接口中只有一个抽象方法时(静态方法、默认方法不在其中)
(1) 无参数、没有返回值
a. 语法结构:接口名 引用 = () -> {// 方法实现部分};
b. 注意:当 {}中只有一行语句时,{}可以省略,但是不建议。
(2)有参数 没有返回值
a. 语法结构:接口名 引用 = ((数据类型 变量名,数据类型 变量) -> {// 方法实现部分};
(3) 带有返回值:
a. 语法结构:接口名 引用名 = (形参列表)->{ return xxx; };
b. 注意:如果{}中只有一条 return 语句,return语句和{}可以省略(一起)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值