---------------------- android培训、java培训、期待与您交流! ---------------------
JavaSE_10 笔记
Java语言基础之 异常 objcet类一些方法
1、 面向对象之 异常
异常:在运行时期发生的不正常情况。
异常类:描述不正常情况的类,通过面向对象的思想将具体的问题封装成的具体的类。在Java中用类的形式对不正常情况进行了描述和封装对象。
2、异常根据不正常问题能否处理分成两大类:
①一般不可处理异常:Error。
②可以处理异常:Exception。
③两着的父类
Throwable :它及其所有的子类都具有可抛性,发生问题是应该让调用者知道并处理。其可抛性是通过throws throw 修饰类和对象,来体现的。
3、异常发生两种情况及其处理方式
①编译时对于异常的处理
如果编译时函数内发生了异常,需要在函数上进行抛出声明,否则编译失败。
②调用了发生异常的函数,必须要处理,否则一样编译失败,处理方式之一就是抛出。
4、编译时是否检测异常的分类:
①编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系。这种问题一旦出现,就是希望这个问题在编译时就能检测到,并让此问题有对应的处理方式。
②编译时不检测异常,只有运行时会发生子类:就是Exception中的RuntimeException和其子类。这种问题发生时,是无法让功能继续,运算无法进行。通常是因为调用者的原因导致的。这种问题一般不处理,直接编译通过,只有在运行时,让调用者在调用该程序时强制停止。
③ 所以自定义异常时,要么继承Exception ,要么继承RuntimeException。
5、throws 和 throw 的区别
①throws使用在函数上;throw使用在函数内。
②throws抛出的是异常类,可以抛出多个,用逗号隔开;throw抛出的是异常对象。
6、异常处理的捕捉形式: try { } catch( 异常类 变量 ) ( ) finally { }
7、Object类的equals方法两种比较方式:
①因为比较的是对象,所以比较的是地址;功能类似于“==”。
②//比较年龄是否相同,复写的父类的方法,根据对象的具体内容,来建立判断对象是否相同的依据
public boolean equals(Object obj)
{
if(!(obj instanceof Person)) //最好抛出异常, throw new ClassCastException(“类型错误”);
{
return false;
}
Person p=(Person)obj;
return this.age==obj.age;
}
8、Object类的hashCode方法:
当equals方法被重写时,通常有必要重写hashCode方法,以此哈希码判断来声明对象必须具有相等的哈希码。
9、Object类的getClass方法,
Java中一切皆对象,用getClass方法获取的是,当前对象所属的字节码文件对象。
2012/9/09 By Mary_k