JAVA(10)-重要方法

一.Object类

Object类为所有类的父类,是类层次结构的根类,每个类都是用Object作为超类
所有对象(包括数组)都实现这个类的方法

二.toString方法

定义:返回该对象的字符串表示
注意事项:
看一个类是否重写了toString方法,直接打印这个类对应对象的名字即可

  • 如果没有重写toString方法,那么打印的就是对象的地址值
  • 如果重写了就按重写方法打印

实例:

@Override
public String toString(){
    return "name = " + name + " age = " + age;
}

三.equals方法

定义:

Person类默认继承了Object类,所以可以使用Object类的equals方法

boolean equals(Object obj)
//指示其他某个对象是否与此对象相等

重写

Object类的equals方法,对两个对象进行比较,需要防止空指针异常

Object.equals(s1,s2);

但是如果直接对null调用方法则会抛出空指针异常

s1.equals(s2)

系统提供的实例代码:

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    //getClass()!=o.getClass()  使用反射技术,判断o是否为person类型,等效于obj instanceof person
    if (o == null || getClass() != o.getClass()) return false;

    person person = (person) o;

    if (age != person.age) return false;
    return name != null ? name.equals(person.name) : person.name == null;
}

@Override
public int hashCode() {
    int result = name != null ? name.hashCode() : 0;
    result = 31 * result + age;
    return result;
}

自己重写的equals代码

@Override
public boolean equals(Object obj){
    if (obj == null){
        return false;
    }

    if(obj == this){
        return true;
    }
    //传递本身

    if(obj instanceof person) {
        person p = (person) obj;
        return (this.age == p.age) &&(this.name.equals(p.name));
        //对name使用equals,因为是引用类型
    }
    else
        return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值