匿名内部类
局部内部类的一种,没有类名的内部类,用父亲的名字代替类名
连用带定义代替了这个父类衍生的子类,在项目体量不是很大的情况下没必要抽离出来,直接用面向过程编程就可以了,注意方法的重写
使用前提:必须继承一个父类或者实现一个接口
如果一个类只想把另一个类隐藏起来而不像引用外部类的对象,于是出现了静态成员式内部类;
访问成员式内部类的方法:外部类名.内部类名 变量名 = new 外部类名.内部类名()
静态成员式内部类创建实例的时候不必创建外部对象;
静态成员式内部类可以直接访问外部类的静态成员,不能直接访问外部类的非静态成员。
加上new一个对象出来就可以调用了
在静态成员式内部类中可以定义静态和非静态成员
外部类可以通过完整的类名直接访问静态内部类的静态成员
lambda表达式
lambda表达式就是函数式编程思想的具体表达
启动一个线程,在控制台输出多线程启动了
方案一:定义一个类MyRunnable,重写run()方法
如果一个类想用线程启动必须要实现了这个接口的才能调用Thread
方案二:匿名内部类的方式改进
方案三:lambda表达式(箭头函数)改进
Thread后面的空括号里面队以哦那个的是上面run()方法里面的参数,如果有参数就写到那个里面
lambda表达的标准格式
三要素:形式参数,箭头,代码块
格式:(形式参数)->{代码块}
形式参数: 如果有多个参数,参数之间用逗号隔开,如果没有参数,括号不能省略;
->由英文的中划线和大于号组成,固定写法,代表执行
代码块:是我们具体要做的事情,也就是我们写的方法体和内容
使用前提:有一个接口;接口当中有且仅有一个抽象方法
接口也可以自己写
有参无参有多个参的写法👆