Object类的toString()和equals()方法

Object类:

ObjectJava根基类(祖先类),所有类都直接或者间接的继承Object类。

Object类的构造方法只有一个,并且是无参构造子类默认调用父类的无参构造

接下来总结一下Object类的两个方法toString()和equals():

1)toString()

Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息

如果直接打印某对象的引用,则默认会调用这个对象的toString()方法,默认打印的内容中包含这个引用所指向的内存地址(类的全路径+‘@’+哈希值的十六进制)。

所以这个表示其实没有意义,我们可以根据需要在用户自定义类中重写toString()方法。

例如:如果我们要获取一个对象所包含的属性值(姓名、性别、年龄),那么可以重写父类的toString()方法:

@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", sex=" + sex
				+ "]";
	}	

2)equals()

Object类中定义public Boolean equals(Object obj)方法,提供定义对象是否“相等”的逻辑。默认情况下比较的是地址值是否相等,而比较地址值是没有意义的,所以一般子类也会重写该方法。

例如:String类中已经重写了equals(Object obj)方法,重写后的方法比较的是两个字符串的内容是否相等。

当然我们也可以根据需要在用户自定义类中重写equals方法。


最后总结一下 ==和equals()的区别

1)==

 基本类型:比较的是值是否相等

 引用类型:比较的是地址值是否相同

2)equals()

 只能比较引用类型。默认情况下,比较的是地址值是否相同。但是我们可以根据需要重写该方法。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值