面向对象——Object类、异常学习笔记
2017-03-23 09:41
169 查看
equals方法:一般会覆盖此方法,根据对象的特有内容,建立判断对象是否相同的依据。
equals和==的异同:
1、共同点:都可以做比较,返回值是boolean;
2、区别:
(1)==是比较运算符,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值。
(2)equals方法只能比较引用数据类型,(因为是方法,所以由对象来调用)equals方法在没有重写之前,比较的是地址值,底层依赖的是==号,但是比较地址值
是没有意义的,我们需要重写equals方法
hashCode方法:返回该对象的哈希值,一般会覆盖此方法
getClass方法:返回此object的运行时类
toString方法:返回该对象的字符串表示,一般会覆盖此方法
异常:在运行时发生的不正常情况
在java 中用累得形式对不正常的情况进行了描述和封装,描述不正常情况的类,就称为异常类。以前正常流程代码和问题处理代码相结合,现在将正常流程
和问题处理代码分离,提高阅读性。其实异常就是Java通过面向对象的思想将问题封装成了对象,用异常类对其进行了描述。不同的问题用不同的类进行描述
比如角标越界,空指针等等。问题很多,意味着描述的类也很多。将其共性向上抽取,形成了异常体系。最终问题(不正常情况)分成两大类:
Throwable:无论是error,还是异常,问题发生就应该可以抛出,让调用者知道并处理,该体系的特点在于Throwable及其所有的子类都具有可抛性
可抛性其实是通过两个关键字来体现:Throws Throw凡是可以被这两个关键字所操作的类和对象都具有可抛性
1、一般不可处理的,Error
特点:是由jvm抛出的严重性问题,这种问题发生一般不针对性处理,直接修改程序
2、可以处理的,Exception
该体系的特点:子类的后缀名都是用其父类名作为后缀,阅读性很强
自定义异常:例如,自定义负数角标异常
注意:要定义一个异常类,必须要让其继承异常体系,因为只有异常体系的子类才有被抛出性。才可以被两个关键字操作
异常的分类:
1、编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系,这种问题一旦出现,希望在编译时就进行检测,让这种问题
有对应的处理方式。这样的问题都可以针对性的处理。
2、编译时不检测异常(运行时异常):就是Exception中的RuntimeException和其子类
这种问题发生,无法让功能继续,运算无法进行。更多是因为调用的原因导致的或者引发了内部状态的改变导致的,
那么这种问题一般不处理,直接编译通过,在运行时,让调用者调用时的程序强制停止,让调用者对代码进行修正。
因此自定义异常时,要么继承Exception,要么继承RuntimeException。
throws和throw的区别
1、throws使用在函数上,throw使用在函数内
2、throws抛出的是异常类,可以抛出多个,用逗号隔开。throw抛出的是异常对象
异常捕捉:
、
异常多catch情况:如果多catch情况,其中有捕获父类异常对象,那么该catch模块,一定要放在最下面
异常处理原则:
finally代码块:通常用于关闭资源
异常应用:
异常的注意事项:
1,子类在覆盖父类方法时,父类的方法如果抛出了异常,
那么子类的方法只能抛出父类的异常或者该异常的子类。
Exception
|--A
|--B
|--C
class Fu
{
void show()throws A
{}
}
class Zi extends Fu
{
void show()throws A//B或者不抛异常
{
}
}
2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类只能抛出父类的异常或者子类或者子集。
注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛,就只能try .
interface Inter
{
void function();
}
class D implements Inter
{
public void function()//这时就只能try
{}
}
equals和==的异同:
1、共同点:都可以做比较,返回值是boolean;
2、区别:
(1)==是比较运算符,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值。
(2)equals方法只能比较引用数据类型,(因为是方法,所以由对象来调用)equals方法在没有重写之前,比较的是地址值,底层依赖的是==号,但是比较地址值
是没有意义的,我们需要重写equals方法
hashCode方法:返回该对象的哈希值,一般会覆盖此方法
getClass方法:返回此object的运行时类
toString方法:返回该对象的字符串表示,一般会覆盖此方法
异常:在运行时发生的不正常情况
在java 中用累得形式对不正常的情况进行了描述和封装,描述不正常情况的类,就称为异常类。以前正常流程代码和问题处理代码相结合,现在将正常流程
和问题处理代码分离,提高阅读性。其实异常就是Java通过面向对象的思想将问题封装成了对象,用异常类对其进行了描述。不同的问题用不同的类进行描述
比如角标越界,空指针等等。问题很多,意味着描述的类也很多。将其共性向上抽取,形成了异常体系。最终问题(不正常情况)分成两大类:
Throwable:无论是error,还是异常,问题发生就应该可以抛出,让调用者知道并处理,该体系的特点在于Throwable及其所有的子类都具有可抛性
可抛性其实是通过两个关键字来体现:Throws Throw凡是可以被这两个关键字所操作的类和对象都具有可抛性
1、一般不可处理的,Error
特点:是由jvm抛出的严重性问题,这种问题发生一般不针对性处理,直接修改程序
2、可以处理的,Exception
该体系的特点:子类的后缀名都是用其父类名作为后缀,阅读性很强
自定义异常:例如,自定义负数角标异常
注意:要定义一个异常类,必须要让其继承异常体系,因为只有异常体系的子类才有被抛出性。才可以被两个关键字操作
异常的分类:
1、编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系,这种问题一旦出现,希望在编译时就进行检测,让这种问题
有对应的处理方式。这样的问题都可以针对性的处理。
2、编译时不检测异常(运行时异常):就是Exception中的RuntimeException和其子类
这种问题发生,无法让功能继续,运算无法进行。更多是因为调用的原因导致的或者引发了内部状态的改变导致的,
那么这种问题一般不处理,直接编译通过,在运行时,让调用者调用时的程序强制停止,让调用者对代码进行修正。
因此自定义异常时,要么继承Exception,要么继承RuntimeException。
throws和throw的区别
1、throws使用在函数上,throw使用在函数内
2、throws抛出的是异常类,可以抛出多个,用逗号隔开。throw抛出的是异常对象
异常捕捉:
、
异常多catch情况:如果多catch情况,其中有捕获父类异常对象,那么该catch模块,一定要放在最下面
异常处理原则:
finally代码块:通常用于关闭资源
异常应用:
异常的注意事项:
1,子类在覆盖父类方法时,父类的方法如果抛出了异常,
那么子类的方法只能抛出父类的异常或者该异常的子类。
Exception
|--A
|--B
|--C
class Fu
{
void show()throws A
{}
}
class Zi extends Fu
{
void show()throws A//B或者不抛异常
{
}
}
2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类只能抛出父类的异常或者子类或者子集。
注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛,就只能try .
interface Inter
{
void function();
}
class D implements Inter
{
public void function()//这时就只能try
{}
}
相关文章推荐
- 学习笔记 Java_毕向东_面向对象_静态_异常 2014.8.2
- (15)Java学习笔记——面向对象08——异常
- NO8.java笔记【面向对象、抽象类、abstract、接口、interface、多态 、内部类、匿名内部类、异常、Object类】
- (16)Java学习笔记——面向对象09——Object类
- Python 学习笔记(二):时间,函数,异常,面向对象
- C#2005 .NET3.0高级编程学习笔记————结构,部分类,静态类,Object类
- [设计模式学习笔记之一]面向对象是什么?
- Pro visual c++/cli and .net 2.0 platform2 学习笔记(8第三章 面向对象的C++/CLI===1)
- Pro visual c++/cli and .net 2.0 platform2 学习笔记(9第三章 面向对象的C++/CLI==2)
- java学习笔记(七)----异常
- 异常处理与自定义异常学习笔记
- Java学习笔记1------面向对象的三个基本特征
- Java学习笔记1------颠覆传统-面向对象的设计思想(序章)
- PHP学习笔记4 - 面向对象
- Python学习笔记五(面向对象-类-方法-属性)
- Java学习笔记1------面向对象的思维方法
- [WCF 学习笔记] 5. 异常处理
- 面向对象的设计模式的学习笔记,不断学习归纳总结ing
- [ASP.NET学习笔记之二十六]C#的异常处理
- Java 学习笔记 (4) -异常 Exception