JavaSE进阶-day03
1.内部类
1.1 基本概述
概述: 定义在"类的内部"的类,就称之为"内部类".
分类:
局部内部类: 放在方法内部的"内部类",就是局部内部类
成员内部类: 方法类中方法外的"内部类",就是成员内部类.
1.2 常规内部类(了解)
① 成员内部类
概述: 成员内部类是放在"类中方法外"的内部类.
格式: 外部类.内部类 对象名 = new 外部类().new 内部类();
注意:
1:实际开发中,一般不用成员内部类
2:如果要用,一般也会把内部类私有化
② 局部内部类
概述: 局部内部类是放在"方法中"的内部类
作用: 放在方法中的内部类,方法执行完毕之后,就会被销毁,可以节省内存.
1.3 匿名内部类(掌握)
概述: 匿名内部类,就是"局部内部类"的简化格式.
格式:
new 父类/父接口(){
//重写方法
}
注意:
匿名内部类 -> 本质上是一个"实现类父类或父接口的子类的对象"
2.Lambda表达式
2.1 基本概述
概述: Lambda表达式就是"匿名内部类"的简化格式. 依据"可推断可省略"原则,进行优化.
快捷: 鼠标点击灰色区域 -> Alt + 回车 -> 回车
格式: (参数) -> { 方法体代码 }
2.2 语法特点
语法要求:
1:父层次必须是"接口"
2:父接口中"有且仅有一个抽象方法"
省略规则:
1:参数类型可以省略.
2:如果参数只有一个,则()可以省略.
3:如果代码只有一句,则"{},分好,return"都可以省略
2.3 Lambda和匿名内部类的区别(了解)
所需类型:
Lambda: 只能是接口
匿名内部类: 啥都行.
要求不同:
Lambda: 接口"有且仅有一个抽象方法"
匿名内部类: 没要求.
编译不同:
Lambda: 编译后不会产生class文件(会在内存中产生class文件,用完之后立即销毁).
匿名内部类: 会产生class文件,文件名"外部类$xxx.class"
3.API
概念:
API: API指的是"Java提前做好的那些类".
API文档: 指的是"Java提前做好的类的说明书."
操作:
1.打开API文档
2.在左边索引位置下边的搜索框中,填写"你要找到类的名称",找到之后,点击回车
3.看右边,类的说明
4.看右边构造方法(有了构造方法才能创建对象)
5.看普通方法(普通方法就是该类提供的功能)
4.Math
概述: Math类中,定义了"和数学运算有关系的功能"
方法:
public static int abs(int a) //返回参数的绝对值
public static double ceil(double a) //向上取整
public static double floor(double a) //向下取整
public static int round(float a) //四舍五入
public static int max(int a,int b) //返回两个int值中的较大值
public static int min(int a,int b) //返回两个int值中的较小值
public static double pow(double a,double b) //返回a的b次幂的值
public static double random() //返回值为double的随机数值,[0.0,1.0)