五月十五日java基础知识点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五月十五日java基础知识点相关的知识,希望对你有一定的参考价值。
1.匿名内部类适用于编写事件程序
interface Ishape
void shape();
class MyType
public void outShape(Ishape s)//接口变量作为参数
s.shape();
public class app13_5
public static void main(String[] args)
MyType m = new MyType();
m.outShape(new Ishape()//匿名内部类作为方法方法调用参数
@Override
public void shape()
System.out.println("我可以是任何形状");
);
2.函数式接口(单抽象方法接口)是指只包含一种抽象方法接口
最好使用@FunctionalInterface注解表示接口为函数式接口
interface IntFun
double dis(int r);
public class app13_6
public static void main(String[] args) //利用接口类创建匿名内部类对象并实现接口中的方法
IntFun fun =(new IntFun()
@Override
public double dis(int r)
return 2*r;
);
double m = fun.dis(2);
System.out.println(m);
3.Lambda表达式是指只有一种抽象方法接口环境下的一种简化定义形式
用于解决匿名内部类定义复杂问题
4.一个Lanbda表达式对应一个函数式接口,可将Lambada表达式看作是实现函数是接口
的匿名内部类的一个对象
例如:Runnable接口就是一个函数接口
@FuncatonalInterface
public interface Runnable void run();
@FunctionalInterface
interface IntFun1
double dis(int r);
public class app13_7
public static void main(String[] args) //利用Lambda表达式简化创建匿名内部类
IntFun1 fun = (i)->return 2*i;;
double m = fun.dis(3);
System.out.println(m);
5.函数式接口中可以有Object类中覆盖,也就是equals()方法、toString()方法、hashCode()方法
例如:public interface Comparator<T>//泛型接口
int comparator(T o1,T o2);
boolean equals(object obj);//父类中Object方法
6.可以在函数式接口中定义静态方法和默认方法
7.lambda表达式(匿名方法)是可以传递给方法的一段代码
Lambda表达式是由参数列表、箭头、方法体三部分组成
其语法格式:
(类型1 参数1,类型2 参数2 ,...)->方法体
例如:将a.outShape(new Ishape()
public void shape()
System.out.println("我可以是任何形状");
);
用Lambda表达式表示为:
a.outShape(
() ->System.out.println("我可以是任何形状!"););
Lambda表达式省略了接口类型与方法名,->左边是参数列表,右边是方法体
8.Lambda表达式不建议用来处理复杂语句组
public class app13_8
public static void main(String[] args)
String []names = "唐僧 "," 孙悟空 "," 猪八戒 "," 沙和尚 ";
List<String> al = Arrays.asList(names);//调用静态方法asList()创建列表对象
System.out.print("用匿名内部类遍历输出:");
al.forEach(new Consumer<String>()
@Override
public void accept(String s)
System.out.print(s);
);
System.out.print("\\n"+"用Lambda表达式遍历输出:");
al.forEach((s) -> System.out.print(s) );
总结:函数式接口接口中只含有一个抽象方法的接口
Lambada表达式匿名方法
Lambda表达式是与函数式接口连用的
以上是关于五月十五日java基础知识点的主要内容,如果未能解决你的问题,请参考以下文章