Object类和异常

Object类(所有类的顶级父类)

今天说的两个方法:

equals:

用于比较两个对象是否相同,它其实是使用两个对象的内存地址进行比较,底层默认使用的是==比较运算符来判断的。

在以后开发中,要比较两个对象是否相同,经常会根据对象中的属性值进行比较。也就是经常需要重写Object类中的equals方法,根据对象的属性值进行比较

        注意:在重写Object类中的equals方法时,一定要注意参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前一定要进行类型判断

toString:

返回该对象的字符串表现形式。其实该字符串内容就是对象的类型[email protected]+内存地址值。

在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

注意:在我们直接使用输出语句输出对象名的时候,其实通过该对象调用了其toString()方法.

异常:(分为运行时异常和编译时异常)

异常的概念:

异常本身是一个类,产生异常就是创建异常对象并抛出(throw)了一个异常对象。Java处理异常的方式是中断处理。

顶级父类:Throwable

子类:Exception、Error(不可修改错误。不用我们处理)

Exception子类:

RuntImeException(运行时异常)

运行时异常(RuntimeException):运行时可能会报错,可以不处理。

编译时异常(Exception):编译时无法编译通过。

自定义异常:

自定义运行时异常:需要继承RuntimeException。写构造方法即可

自定义编译时异常:需要继承Exception。写构造方法即可

自定义异常:需要手动抛出异常

自定义异常格式:

Class 异常名 extends Exception{ //或继承RuntimeException

public 异常名(){

}

}

处理异常:try{}catch(异常对象){}

捕获处理,将异常获取,使用try/catch做分支处理

格式:

try{

需要检测的异常;

}catch(异常对象) {

异常处理代码:

可以调用异常的方法通常我们只使用一个方法: printStackTrace打印异常信息

}

另外两种处理方式:

1.声明抛出处理,出现异常后不处理,声明抛出给调用者处理。

格式:

方法声明上加throws 异常类名

2.抛出异常 使用throw关键字。写在方法内部。

格式:

throw new 异常类名(参数);

3.抛出指定异常的具体操作步骤:

1,创建一个异常对象。封装一些提示信息(信息可以自己编写)。

2,需要将这个异常对象告知给调用者。怎么告知呢?怎么将这个异常对象传递到调用者处呢?通过关键字throw就可以完成。throw 异常对象;

throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。

注意:异常处理,指处理的一种可能性,即有了异常处理的代码,不一定会产生异常。

如果没有产生异常,则代码正常执行,如果产生了异常,则中断当前执行代码,执行异常处理代码。

捕获异常:try{}catch(异常对象){}finally{}

格式:

try {

//需要被检测的语句。

}catch(异常类变量) { //参数。

//异常的处理语句。

}finally {

//一定会被执行的语句。

}

异常的注意事项:

多异常处理

捕获处理:

1多个异常分别处理

2多个异常一次捕获多次处理

3多个异常一次捕获一次处理

声明抛出异常:

声明上使用,一次声明多个异常

运行时异常被抛出之前可以不处理。即不捕获也不声明抛出

如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集

父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出

当多异常处理时,捕获处理,前边的类不能是后边类的父类

在try/catch后可以追加finally代码块,其中的代码一定会被执行,通常用于资源回收。

一个try 多个catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对每种异常信息进行不同的捕获处理。

注意:

这种异常处理方式,要求多个catch中的异常不能相同,并且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。

try finally 组合: 对代码进行异常检测,检测到异常后因为没有catch,所以一样会被默认jvm抛出。异常是没有捕获处理的。但是功能所开启资源需要进行关闭,所有finally。只为关闭资源。

原文地址:https://www.cnblogs.com/rrong/p/12078402.html

时间: 2024-08-10 18:06:46

Object类和异常的相关文章

08. Object类、异常类

八.黑马程序员_Object类.异常类 A.Object类  B.异常类 A.Object类介绍 a.介绍 Object类是所有类的直接或间接父类,它里面定义的功能是所有类都具备的. b.Object类中常用的方法有 getClass():返回该对像的运行时类.它返回一个Class类型的对像.在反射中较常用: toString():返回该对像的字符串表现形式.返回值为String类型.通常我们都要覆写这个方法: hashCode():返回该对象的哈希码值.它返回一个int类型的值.通常情况下我们

Object类-try-catch-finally-throw-throws-自定义异常

一.Object类     Object类是最顶端的类,其它类都是它的子类,它的方法可以被继承.如果定义的类没有继承别的类,那它的直接父类就是Object.如果方法参数类型为object类型, 则调用方法可以传递任意类型的值(相当于多态);同理,如果方法返回值为Object类型,那么给方法的返回数据值为任意类型.     两种常用方法:toString()/equals() (1)toString方法 源码: public String toString(){         return ge

黑马程序员-Java基础-面向对象—多态、Object类、内部类、异常

第一讲  多态 1.  定义 可以理解为事物存在的多种体现形态. 在java中,当函数的功能内容不确定时,可以将此方法定义为抽象方法,让其子类去实现.当子类对象不同时,调用同一个函数名,会执行不同的函数体,得到不同的结果,从而体现了多态性. 2.  多态的体现形式 父类的引用指向了自己的子类对象:Fu f = new Zi(): 父类的引用也可以接受自己的子类对象: 3.  多态的前提条件 必须是类与类之间有关系,要么继承,要么实现(接口): 函数之间存在覆盖(重写): 4.  多态的好处 大大

深入研究java.lang.Object类

一.概述:       Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类.      可以使用类型为Object的变量指向任意类型的对象.      Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法.      Object类的变量只能用作各种值的通用持有者.要对他们进行任何专门的操作,都需要知道它

object 类

Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类.      可以使用类型为Object的变量指向任意类型的对象.      Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法.      Object类的变量只能用作各种值的通用持有者.要对他们进行任何专门的操作,都需要知道它们的原始类型并进行类型转

java笔记--关于Object类与线程相关的方法

关于Object类中的线程方法 Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notifyAll(),wait(),这几个方法都是用来控制线程的运行状态的. 方法列表如下: notify() : 唤醒在此对象监视器上等待的单个线程 notifyAll() : 唤醒在此对象监视器上等待的所有线程 wait() : 在其他线程时调用此对象的notify()或者notifyAll()方法前,导

Java提高学习之Object类详解(1)

转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类.当然,数组也继承了Object类.然而,接口是不继承Object类的,原因在这里指出:Section 9.6.3.4 of the Java Language Specification:“Object类不作为接口的父类”.Object类中声明了以下函数,我会在下文中作详细说明. 1 prote

Java知多少(75)Object类

Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: 1 public class Demo{ 2 // ... 3 } 实际上是下面代码的简写形式: 1 public class Demo extends Object{ 2 // ... 3 } 在Java中,只有基本类型不是对象,例如数值.字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还

java object类

java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类是Java中唯一没有父类的类. 其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法. Object类中的方法 构造方法:public Object() 文档中的类概览: Java中的每个类都具有定义在Object类中的这些方法. protected Object clone() Cr