Object类、JAVA的异常处理机制
2015-07-22 20:27
411 查看
Object类
说明
类 Object 是类层次结构的根类,所有的类都继承于Object类,所有对象(包括数组)都实现这个类的方法。方法摘要:
equals(Object obj)指示其他某个对象是否与此对象“相等”,返回一个boolean值。
hashCode()
返回该对象的哈希码值
toString()
返回该对象的字符串表示。
代码示例
创建Student类public class Student { private String name; private int stuNum; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getStuNum() { return stuNum; } public void setStuNum(int stuNum) { this.stuNum = stuNum; } @Override public boolean equals(Object obj) {//重写了equals方法 if(obj!=null&&obj instanceof Student){ return ((Student)obj).stuNum==this.stuNum; } return false; } @Override public String toString() {//重写了toStrin方法 return this.name; } }
创建Test类
public class Test { public static void main(String[] args) { Student zhangsan = new Student(); zhangsan.setName("张三"); zhangsan.setStuNum(1); Student lisi = new Student(); lisi.setName("李四"); lisi.setStuNum(2); System.out.println(zhangsan.equals(lisi));//比较两个不同的对象,返回false System.out.println(zhangsan);//返回该对象的字符串表示 Student wangwu = new Student(); wangwu.setName("王五"); wangwu.setStuNum(1); System.out.println(zhangsan.equals(wangwu));//重写了equals方法 System.out.println(wangwu);//重写了toStrin方法 } }
运行结果:
JAVA的异常处理机制
异常类型
1. Error为系统异常,不是程序所能控制的。如JVM出现异常。
2. 编译Exception,需要在编写代码的时候处理。通常用try/catch语句处理。
3. RuntimeException,运行异常,能通过编译,但运行结果会异常。
捕获异常
使用try/catch块
public void 方法名(){ try{ //代码块(此处会产生异常) } catch(异常类型 e){ //对异常进行处理的代码块 } 代码块 //继续执行后边的代码 }
使用多重catch块
public void 方法名(){ try{ //代码块(此处会产生异常) } catch(异常类型1 e){//对异常进行处理的代码块} catch(异常类型2 e){//对异常进行处理的代码块} catch(异常类型3 e){//对异常进行处理的代码块} 代码块 //继续执行后边的代码 }
注意:一段代可能引发多种类型的异常,当异常发生时,会按照顺序查看每个catch语句,并执行第一个与异常类型匹配的catch语句,执行该catch语句后,其后的catch语句将会被跳过。
使用使用try/catch/finally块
public void 方法名(){ try{ //代码块(此处会产生异常) } catch(异常类型 e){ //对异常进行处理的代码块 } finall{ 代码块 //一定会执行的代码 } }
声明异常
throws关键字
使用throws关键字声明方法可能要抛出的各种异常,throws只能出现在方法头。如:
public void 方法名() throws 异常类型
代码例子
创建Student类import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Student {//throws关键字的用法 public void read() throws FileNotFoundException,IOException{ FileInputStream is = new FileInputStream("c:\\UniqloVedio.rmvb"); is.read(); } }
创建测试类
import java.io.FileNotFoundException; import java.io.IOException; public class Test { public static void main(String[] args) { Student zhangsan = new Student(); try { zhangsan.read(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
运行结果:
抛出异常
throw关键字
throw关键字用于自定义异常,然后手动抛出。throw关键字只能出现在方法体内。如:
public void 方法名(){ throw new 自定义异常名 }
代码例子
创建Stude类import lz20150722.d3.ForbiddenException; public class Student { public void see() throws ForbiddenException{ throw new ForbiddenException("禁止看羞羞视频");//throw关键字 } }
创建自定义异常类
public class ForbiddenException extends Exception{ public ForbiddenException(String message){ //super("禁止看羞羞视频!");第一种写法(无参) super(message);//第二种写法(有参) } }
创建Test类
public class Test { public static void main(String[] args) { Student zhangsan = new Student(); try { zhangsan.see(); } catch (ForbiddenException e) { e.printStackTrace(); } } }
运行结果:
相关文章推荐
- Java的Object类
- 第二周第三天([输入一个字符串,然后输出字符串的运算结果] [object][异常][IO流,读取D盘某个文件])
- Objective-C学习笔记(三)——用Objective-C编写第一个程序:Hello,World!
- asp:ObjectDataSource+asp:GridView 实现真分页
- 刨根问底Objective-C Runtime(4)- 成员变量与属性
- [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第二章~第七章
- 刨根问底Objective-C Runtime(3)- 消息 和 Category
- 刨根问底Objective-C Runtime(2)- Object & Class & Meta Class
- 刨根问底Objective-C Runtime(1)- Self & Super
- NSObject 的实现分析
- Associative机制使用场景[objective-c有两个扩展机制:category扩展方法和associative扩展属性]
- 关于pch文件
- Objective-C GCC Code Block Evaluation C Extension ({…})语法
- object-c 知识点01
- 【iOS开发系列】NSObject方法介绍
- OC学习笔记之self关键字
- Objective-C学习之旅 第二篇
- OC学习笔记之description
- OC学习笔记之多态
- Objective-C学习笔记(二)——OC基本语法概述