内部类、Lambda表达式

内部类

一、成员内部类

​ 定义:成员内部类不能使用静态方法和成员变量。只能使用 静态 常量。

​ 成员内部类拥有成员的特性和类的特性(继承、实现)

​ 使用:

​ 使用内部类需要通过外部类对象使用

二、静态内部类

​ 定义:静态内部类可以拥有静态成变量和静态方法、成员变量和成员方法

​ 使用:静态内部类使用外部类成员变量和方法需要创建外部类的对象,当然外部类要使用静态内部类的成员变量和成员方法也需要通过内部类的对象使用。外部类可以直接使用内部类中的静态成员变量和方法。

三、局部内部类

​ 定义:定义在外部类的方法中

​ 使用:只能在定义的方法中使用,如果要使用方法的参数,那么这个参数需要被final修饰

四、匿名内部类

​ 匿名内部类的使用可以简化实现,子类,不浪费类名

//游泳接口
interface Swim{
	void swimming();
	void sleep();
}
//匿名内部类 1) 只能使用一次
		new Swim(){  //匿名内部类-->作为Swim接口实现类的类体
			public void swimming() {
				System.out.println("自由泳...");
			}
			public void sleep() {
				System.out.println("边有用边睡觉..");
			}			
		}.sleep();
	//2.引用指向匿名内部类对象
		Swim s=new Swim(){  //接口多态
			public void swimming() {
				System.out.println("自由泳...");
			}
			public void sleep() {
				System.out.println("边有用边睡觉..");
			}
		};
		s.swimming();
		s.sleep();
//3)匿名内部类作为方法的参数使用
static void test(Swim s){
		s.swimming();
	}
test(new Swim(){

			@Override
			public void swimming() {
				System.out.println("哈哈哈哈");
			}

			@Override
			public void sleep() {
				// TODO Auto-generated method stub
			}
			
		});

Lambda

当接口只有一个方法时可以使用lambda表达式:JDK1.8的新特性

接口 变量=()->{};
()中放重写方法的参数
{}放重写的方法
->  lambda符号
1、当{}语句体只有一句时可以省略{}; 接口 变量=()->方法体;
2()中的数据类型可省略;接口 变量=(int a,double b)->方法体;=>接口 变量=(a,b)->方法体;
3()括号中的参数只有一个可以省略();=>接口 变量=a->方法体;
4、当方法体有返回值且只有返回值时:接口 变量=()->返回值;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值