匿名对象:没有名称的对象
格式:
只开辟空间,不创建引用
例如:
new Scanner(System.in);
注意:
匿名对象只能使用一次
匿名类:没有名称的类
前提:继承或实现
格式:
new 父类/接口(){
方法重写;
}
本质:
一个继承了该类或者实现了接口的子类匿名对象
使用多态的形式 创建子类匿名对象
异常:程序出现的错误
异常体系
Throwable
error:系统错误
exception:程序错误
RuntimeException:运行错误
非RuntimeException:编译错误
异常处理:不让出现异常的代码影响其他代码的执行
处理:try-catch
格式1:
try{
可能出现异常的代码
}catch(异常类 变量名){
处理方式
}
格式2:
try{
}catch(){
}catch(){
}
格式3:
try{
}catch(){
}finally{
}
注意:
try只能获取一次异常,一旦出现异常,try中异常之后的代码不会执行
finally无论什么情况都会执行
异常操作:
public String getMessage() 返回可输出的简短描述
public String toString() 返回异常的详细信息
public void printStackTrace() 把异常信息输出到控制台
throws
通过try-catch可以处理异常,但是并不是所有的情况都可以处理的,
这个时候该怎么办?
通过throws来进行抛出,不进行处理
格式:
throws 异常类
注意:throws是写在方法之后的
范例:public void test() throws Exception{}
throws只是进行了抛出,抛出之后也需要进行处理
谁调用这个方法谁去处理
处理方式两种 1.try-catch(不会影响其他代码的执行) 2.也抛出(会影响)
注意:
一旦见到异常就进行try-catch
throw:抛出异常到控制台,并停止当前程序的运行
格式:
throw 异常对象
throws throw
用在方法声明后,跟的是异常类 用在方法内,跟的是异常对象
表示抛出异常,由调用的调用者处理 表示抛出异常,由当前方法处理
表示出现异常的可能性,不一定会出现 肯定抛出异常
注意:
方法定义上一但使用了throws,方法调用必须处理
方法定义上一但使用了throws,表示当前方法可能会出现异常
自定义异常:
格式:
定义异常类 extends java自带异常类{
无参
有参(控制台的简短描述);
}
Object
概述:
Object是类层次的的顶级父类,每个类都可以将Object作为超类,所有的类都直接或间接继承该类
只有一个无参构造 public Object(){}
在之前的面向对象中,子类继承父类时,子类构造中默认调用父类的无参构造,因为它们最顶级父类Object只有无参构造
toString: ArrayList,int[]
equals:String,StringBuilder
无参构造:了解为什么子类默认调用父类无参构造