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

Object是所有类的父类(国外成为超类superclass),Object类的方法是相当少的(理解为教室人越多,他们的共同点越少)。

一:toString方法

Object的toString()方法帮助我们返回一个字符串,这个字符串的格式是固定的:类名@hashcode。这个hashcode是一串数字(16进制),在Java中叫句柄/(虚拟)地址。但是*句柄不是内存地址*。

toString方法定义的原意是返回能够描述当前这个类的事例的一串文字。但是在Object中无意义,所以通常需要重写。

system.out.println(obj) 方法实际上是输出给定对象的toString方法的返回值。

对象引用存栈里,对象本身存堆(JVM在管理对象时创建的一个内存空间)里。

静态方法中,不能使用非静态属性和方法;而非静态方法中可以使用静态属性和方法。所以不能在main方法中system.out.println(toString)。

二:equals方法

public boolean equals(Object obj)
该方法的原意:
比较对象与给定内容对象是否一致
在Object中的实现(和==一模一样):
public boolean equals(Object obj)
return (this==obj)

==比较的是双方的值是否相等,p1,p2是两个引用类型变量,而引用类型变量保存的是对象的句柄(对象的地址那个hashcode值),==在对象比较时描述的是p1,p2是否为同一个对象。而equals方法力图去描述两个对象内容是否相等,内容相等取决于业务逻辑需要,可以自行定义比较规则。

equals也是需要重写的!重写equals时第一件事就是判断给定的对象是否和当前对象为同一类型。不是同一类型直接返回false,不具有可比性。equals比较前需要进行安全验证,确保给定的对象不是null,obj若是null,说明该引用变量没有指向任何对象,那么就不能引用obj所指向对象(因为对象不存在)的属性或方法,若这么做会引发NullPointerException,空指针异常!

直接将Object类转为子类是存在风险的!我们不能保证Object和我们要比较的对象是同一类型的,会引发ClassCastException(类造型异常)!


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值