面向对象高级(二)
目录1.匿名內部类2.Lambda表达式3.String4.ArrayLists集合1.匿名內部类是一种特殊的局部内部类所谓匿名指的是程序员不需要为这个类声明名字默认有个隐藏的名字。new 接口或类参数值...{类体一般是方法重写}new Aniaml(){ override public void cry(){ } }特点匿名内部类本质上是一个子类并会直接创建出一个子类对象作用用于更方便的创建一个子类对象2.Lambda表达式可以用于替代某些匿名內部类对象从而让程序更加简洁可读性更好。被重写方法的形参列表- {被重写的方法体代码。}注意Lambda表达式只能替代函数式接口的匿名內部类什么是函数式接口有且仅有一个抽象方法的接口。FunctionalIterface声明函数式接口的注解public class LambdaDemo1{ public static void main(String[] args){ Swim s1 () - { System.out.prinln(学生贼快) } s1.swimming(); } } FuctionalInterface interface Swin{ void swimming{}; }简化规则参数类型全部可以省略不写。如果只有一个参数参数类型省略的同时“{}”也可以省略但多个参数不能省略“{}”如果Lambda中只有一行代码大括号可以省略不写同时要省略,如果这行代码是return语句也需去掉return语句。静态方法引用类名静态方法引用使用场景如果某个lambda表达式只是调用一个静态方法。并且”-“前后参数一致就可以使用静态方法引用。实例方法引用类名实例方法引用使用场景如果某个lambda表达式只是调用一个实例方法。并且”-“前后参数一致就可以使用静态方法引用。特定类的方法引用特定的类名称方法Arrays.sort(names,String::compareToIgnose)如果某个Lambda表达式只是调用一个特定类型的实例方法并且前面参数列表的第一个参数是作为方法的主调后面的所有参数都是作为该实例方法的入参的则此时就可以使用特定类型的方法引用。构造器引用类名new如果某个Lambda表达式只是在创建对象并且“-”前后参数情况一致就可以使用构造器引用。3.String构造器说明public String()创建一个空白字符串内容不含任何内容public String(string original)根据传入的字符串内容来创建字符串对象public String(char[] chars)根据传入的字符数组来创建字符串对象public String (bytes[] bytes)根据传入的字节内容来创建字符串对象4.ArrayLists集合常用方法名说明public boolwan add(e)public void add(int index ,E element)public E get(int index)public int size()public E remove(int index)public boolean removez(Object o)public E set(int index, E element)