学习内容:
1.简单的一些语法入门
public class lambda {
public static void main(String[] args) {
//无参方法
LamImp1 aa1=()->{
System.out.println("riasd");
};
//有参数方法
aa1.lambade1();
LamImp2 aa2=(int a,int c)->{
System.out.println(a+c);
};
aa2.lambade2(12,32);
//有返回值方法
LamImp3 aa3=(int a,int b)->{
return a+b;
};
System.out.println(aa3.lambade3(15, 12));
}
}
interface LamImp1 {
// 接口定义一个lambade无参数方法
void lambade1();
}
interface LamImp2 {
// 接口定义一个lambade有参数方法
void lambade2(int a,int c);
}
interface LamImp3 {
// 接口定义一个lambade有参数方法
int lambade3(int a,int c);
}
表达式精简语法初级
1.可以把参数的类型进行省略
2.假如只有一个参数小括号也能省
3.如果方法体只有一条语句,大括号也能省略,但是return除外
4.假如方法体只有return一条语句,return也能省路
package com.lianxi.lambda;
public class lambda {
public static void main(String[] args) {
//无参方法
LamImp1 aa1=()-> System.out.println("riasd");
//有参数方法
aa1.lambade1();
LamImp2 aa2=(a,c)-> System.out.println(a+c);
aa2.lambade2(12,32);
//有返回值方法两个参数
LamImp3 aa3=(a,b)-> a+b;
System.out.println(aa3.lambade3(15, 12));
//有返回只有一个参数
LamImp4 aa=a -> a;
System.out.println(aa.lambade4(3));
}
}
interface LamImp1 {
// 接口定义一个lambade无参数方法
void lambade1();
}
interface LamImp2 {
// 接口定义一个lambade有参数方法
void lambade2(int a,int c);
}
interface LamImp3 {
// 接口定义一个lambade有参数方法
int lambade3(int a,int c);
}
interface LamImp4 {
// 接口定义一个lambade有参数方法
int lambade4(int a);
}
3.方法引用
其实我也很想知道为啥不直接类名.方法引用,我看看只能说Java是面向接口编程
package com.lianxi.lambda;
public class lambda {
public static void main(String[] args) {
//方法非静态 需要先new类型名 然后才类名::方法
lambda lambda1 = new lambda();
Lam lam=lambda1::fangfa1;
lam.fangfa(55); // 理解为fangfa内心想的是fangfa1
//静态直接类名::方法就行
Lam lam1=lambda::fangfa2; ;
lam1.fangfa(69);
}
//无需太过注重是否和接口中的方法名称一样
//只要理解成接口中的方法是套着羊皮的狼就行
public void fangfa1(int a) {
System.out.println("我爱Java");
}
public static void fangfa2(int a) {
System.out.println("我爱Java");
}
}
interface Lam{
void fangfa(int a);
}
4.构造器引用
//格式 接口 变量= 构造器名称::new
package com.lianxi.lambda;
public class lambda {
public static void main(String[] args) {
//格式 接口 变量= 构造器名称::new
Lam a=Dog::new;
System.out.println(a.getDog());
Lam1 a1=Dog::new;
System.out.println(a1.getDog("小狗",12));
}
}
interface Lam{
Dog getDog();
}
interface Lam1{
Dog getDog(String A,int B);
}
5.@FunctionalInterfacezhu
注意:
1.接口只能有一个抽象方法
2.允许定义静态和默认方法
3.该注解不是必须的,如果符合函数是接口,加与不加都是没影响的,加上能更好的让编译器进行检查,如果不是加上了编译器会报错
学习时间:
提示:这里可以添加计划学习的时间
例如:
- 周一至周五晚上 7 点—晚上9点
- 周六上午 9 点-上午 11 点
- 周日下午 3 点-下午 6 点
学习产出:
提示:这里统计学习计划的总量
例如:
- 技术笔记 2 遍
- CSDN 技术博客 3 篇
- 习的 vlog 视频 1 个