static详解
static属性和方法
静态属性和静态方法可以直接类名调用,不需要初始化对象。
static代码块
在new一个对象时,先执行类中静态代码块,再执行匿名代码块,然后才是执行构造方法。
静态代码块仅会执行一次。后续再new一个对象也不会执行了。
静态导入包
在导包时加上static和具体包内方法名,在下面写代码时就不需要加包名了。
例如:import static java.lang.math.random
本来调用时应该写math.random的,静态导入包后只需要直接写random就行了。
抽象类
- abstract修饰方法,那么该方法就是抽象方法,如果修饰类,那么这个类就是抽象类。
- 抽象类可以没有抽象方法,但是有抽象方法的类必须声明为抽象类。
- 抽象类不能用new生成对象,只能用来让子类继承。
- 抽象方法只有方法的声明,没有方法的实现,它是用来让子类实现的。
- 子类继承抽象类,那么一定要实现抽象类中没实现的抽象方法,否则该子类也要声明为抽象类。
接口
普通类:只有具体实现
抽象类:具体实现和抽象方法都有
接口:只有规范!
- 接口是规范,定义规则:“如果你是……,则必须能……”。 “如果是飞机,则必须会飞。”
- 声明类的关键字是
class,声明接口的关键字是interface - 实现接口的关键字是
implements, - 接口可以多继承。
- 接口不能被new实例化,接口没有构造方法。
异常
error
错误类由jvm产生抛出,通常情况下与代码编写者的操作无关。
如,内存不足以运行程序、类定义错误、链接错误
exception
- 运行时异常
- 数组下标越界
- 空指针异常
- 算数异常
- 丢失资源
- 找不到异常(这些是不检查异常,程序中可以捕获异常也可以不做处理)
- 一般由程序逻辑错误引起的
- 区别:error是致命错误,程序无法处理,直接终止线程,exception是异常,程序可以处理,写代码的时候可以捕获异常并作出处理。
异常处理机制
一般情况下try{代码监控区}catch{捕获异常}finally{处理异常}
try和catch配合使用,finally可以不用写。
如果要捕获多个异常,需要从小到大捕获。
idea快捷键Ctrl + Alt + T
throw和throws抛出异常。
自定义异常
定义一个类,继承exception类
暂时用不着,后续待补充