JavaSE-day08

类中的成分(成员变量、构造器、方法、代码块、内部类)

一、代码块
1.静态代码块
1)形式为:static {}
2)类加载时自动执行,由于类只加载一次,所以静态代码块执行一次
3)作用:完成静态变量的初始赋值,完成类的初始化
2.实例代码块
1)形式:{}
2)每次创建对象时,实例代码块都会执行一次,在构造器前执行
3) 和构造器一样,用来完成对象的初始化赋值

二、内部类
1.成员内部类(属于外部类对象持有)
1)相似于类中的一个普通成员,属于外部类对象持有
2)创建对象:外部类名.内部类名 a = new 外部类().new 内部类();
3)可以直接访问静态成员和方法也可以访问实例成员和方法,相当于访问外部类对象的静态和实例成员
4)外部类名.this.静态变量名,访问外部类对象
2.静态内部类(属于外部类持有)
1)用static修饰的内部类
2)创建对象(不需要new内部类,因为该类static只有一份):外部类名.内部类名 变量名 = new 外部类.内部类();
3)可以直接访问外部类中的静态成员,不能直接访问实例成员(因为有对象才能访问实例成员)。

三、匿名内部类
1.作用:可以更方便的创建出子类对象(不需要新建子类继承父类,重写方法)
2.形式:直接在new对象时,new一个父类对象(父类抽象类原则上不可new),在{}中重写抽象方法,得到一个子类对象
3.匿名内部类本质上是一个子类,并且立即创建子类对象。
4.使用形式:直接传给静态方法当参数使用,对象回调,例如比较Arrays.sort();中使用Comparator比较器

四、函数式编程
1.lambda表达式
1)用于替代函数式接口的匿名内部类,简化代码
2)函数式接口是只有一个抽象方法的接口,用@FuncationalInterface注解
3)格式: (形参列表)->{重写方法体};
4)书写省略规则。参数类型可以省略不写;只有一个参数的小括号省略不写;方法体只有一行语句的省略大括号同时省略语句分号且去掉return。
2.方法引用(前后参数一致)
1)静态方法引用: 类名::静态方法
2)实例方法引用: 对象名::实例方法
3)特殊类型方法引用: 特殊类名称::方法
4)构造器引用: 类名::new

基础语法完!!

posted @ 2024-11-30 11:08  南飞小猪  阅读(2)  评论(0)    收藏  举报