总览
其他文章链接
【 Java编程基础_注解与命名规则&数据类型&运算符&修饰符&流程控制】
【Java面向对象编程_方法&类与对象&数组&String类】
【Java面向对象编程_抽象类&接口&包装类&泛型】
【Java面向对象编程_包&访问控制权限&构造方法私有化&枚举】
【Java面向对象编程_异常的捕获与处理】
本文内容
1,内部类基础知识
demo_内部类
class Outer
{
private String words="外部类私有属性";
class Inner
{
public void say(){
System.out.println(Outer.this.words);
}
}
}
public class 内部类
{
public static void main(String agrs[]){
Outer.Inner in=new Outer().new Inner();
in.say();
}
}
2,匿名内部类
demo_匿名内部类
interface IMessage
{
public void send(String str);
}
interface IMessageB
{
public void send(String str);
public static IMessageB getInstance(){
return new IMessageB(){
public void send(String str){
System.out.println("hello "+str);
}
};
}
}
public class 匿名内部类
{
public static void main(String agrs[]){
IMessage mess=new IMessage(){
public void send(String str){
System.out.println("hello "+str);
}
};
mess.send("world");
IMessageB.getInstance().send("world");
}
}
3,Lambda表达式
demo_Lambda表达式
@FunctionalInterface
interface IMath
{
public abstract int add(int x,int y);
}
@FunctionalInterface
interface IMessage
{
public abstract void send(String str);
}
public class Lambda表达式
{
public static void main(String agrs[]){
IMath math=(a,b)->a+b;
System.out.println(math.add(10,20));
IMessage mess=(str)->{
System.out.println(str);
};
mess.send("hello");
}
}
4,接口方法引用
demo_方法引用
@FunctionalInterface
interface IFunction<P,R>
{
public R change(P p);
}
@FunctionalInterface
interface IFunctionB<R>
{
public R change();
}
@FunctionalInterface
interface IFunctionC<P>
{
public int change(P p1 ,P p2);
}
class Person
{
public Person(){
System.out.println("人");
}
}
@FunctionalInterface
interface IFunctionD
{
public void change();
}
public class 方法引用
{
public static void main(String agrs[]){
IFunction<Integer,String> fun=String::valueOf;
System.out.println(fun.change(100).length());
IFunctionB<String> funB="hello"::toUpperCase;
System.out.println(funB.change());
IFunctionC<String> funC=String::compareTo;
System.out.println(funC.change("hello","Hello"));
IFunctionD funD=Person::new;
funD.change();
}
}
5,内建函数式接口
demo_内建函数式接口
import java.util.function.*;
public class 内建函数式接口
{
public static void main(String agrs[]){
Function<String ,Boolean> funA="**hello"::startsWith;
System.out.println(funA.apply("**"));
Consumer<String> funB=System.out::println;
funB.accept("hello");
Supplier<String> funC="hello"::toUpperCase;
System.out.println(funC.get());
Predicate<String> funD="hello"::equalsIgnoreCase;
System.out.println(funD.test("hell"));
}
}