Object类与异常

1、Object类
Object类是所有类的根类,在Java中,只有基本类型(Primitive types)不是对象,如数值、字符、布尔类型,所有数组类型,无论是对象数组还是基本类型的数组,都是扩展于Object类,该类常用的几个方法如下:
a、boolean equals(Object obj);
该方法用于比较两个对象地址(引用)是否相等,子类通常需要重写该方法,标准的重 写案例代码示例如下:
例如有类A,其有a和b两个String类型的成员变量,则重写案例如下:

public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		A other = (A) obj;
		if (a == null) {
			if (other.a != null)
				return false;
		} else if (!a.equals(other.a))
			return false;
		if (b == null) {
			if (other.b != null)
				return false;
		} else if (!b.equals(other.b))
			return false;
		return true;
	}

*Java语言要求equals()方法必须具有下面的特性:

1)自反性:对于任何非空对象x,x.equals(x)应返回true;
2)对称性:对于任何引用x和y,当且仅当y.equals(x)返回true,那么x.equals(y)也应该返回true,因此在确定String s不为null值时,不用纠结到底写"".equals(String s)还是写 String s.equals("")
3)传递性:对于任何引用x,y,z,如果x.equals(y)为true,且y.equals(z)为true,那么x.equals(z)一定为true;
4)一致性,如果x和y引用的对象没有发生变化,那么反复调用该方法应该返回同样的结果
5)对于任何非空的引用x,x.equals(null)应该返回false

b、public String toString();
该方法会返回调用对象对应的类名和地址值,格式为:包名.类名@地址值
同样,我们一般会对该方法进行重写,用于返回类名和该类的域值。
例:存在类A,其有成员变量String a,标准的toString()重写代码如下:

public String toString() {
	return "A[a=" + a + "]";
}

在调用toString()方法时,可以用x+""代替,这条语句的意思是将一个空字符串与x的字符串连接,这里的x就是x.toString(),而且即使x为基本类型,这条语句依然可以执行。

c、hashCode();方法
散列码(hash code)是由对象导出的一个整型值,该值没有任何规律。

int hashCode();//返回对象的散列码,散列码可以是任意的证书,包括正和负数,两个相等的对象要求返回相等的散列码。
int hash(Object ... objects);// 返回一个散列码,由所有对象的散列码组合得到
Static int hashCode(Object a);//如果a为null,则返回0,否则返回a.hashCode();
Static int hashCode(type [] a);//计算数组a的散列码

d、Class getClass();//返回包含对象信息的类对象
Class getSuperClass();//以class对象的形式返回这个类的超类信息
2、异常
a、异常的根类:Throwable类,异常可以分为Exception(异常)和Error(错误)
b、异常的抛出格式:throw new 异常类名(“”);
c、异常的处理:不处理,再次抛出,即在抛出异常的方法上加上throws XXException;捕获处理,标准代码如下:

 * 				标准的方法:
 * 				try{
 * 					可能出现问题的代码
 * 				}catch(所有可能出现异常的父类 变量名){
 * 					处理异常,打印,提示,写入日志
 * 				}finally{
 * 					释放资源:
 * 					1.IO流  2.网络连接 3.数据库连接
 * 				}

可以有三种捕获处理方式:

 一次捕获多次处理: 一个try 多个catch  (多个catch中 必须是异常子类在前,父类在后)
 多次捕获多次处理: 多个try,每个try多应一个catch
 一次捕获一次处理(最常用的):一个try一个catch(catch中异常类必须所有可能出现异常的父类)

d、自定义异常的步骤:
建立自己的异常类,该类一般以Exception结尾,且必须继承Exception或者RuntimeException,提供两个或者多个构造方法,无参+有参…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值