Object方法重写

Object方法重写

toSting方法学习

概述

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

toString 方法返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

自己看法:所有自定义类都继承于Object类,即每个类都继承了toString 方法。使用toString 方法得到的是类的地址。为了使用方便我们经常在新建类的时候重新toString 方法,使其输出类的属性。

操作

重写toString 方法为:

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

或者使用IDEA快捷键Alt+lns 或者(Fn + Alt + Del(lns))选择toString直接生成代码

调用

使用 类名.toString()调用或者直接使用类名

Person one = new Person("代登辉",21);
String s = one.toString();
System.out.println(s);      // object包重写.Person@282ba1e

System.out.println(one);

equals方法学习

概述

equals方法指示其他某个对象是否与此对象“相等”。

自己看法:继承于Object类的equals方法作用是比较两个对象的地址是否相等。通常我们需要对其进行覆盖重写使其可以检查两个对象的属性是否相同。

操作

重写equals方法:

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Person person = (Person) o;
    return age == person.age &&
            name.equals(person.name);
}

或者使用IDEA的快捷键Alt+lns 或者(Fn + Alt + Del(lns))选择equals直接生成代码

调用

Person one = new Person("代登辉",21);
Person two = new Person("代登辉",21);
boolean equals = one.equals(two);
System.out.println(equals);

注意

在JDK7添加了一仑Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save (空指安全的)或null-tolerant(容忍空指针的) ,用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。

在比较两个对象的时候, Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个间题。方法如下:

public static boolean equals(Object a, Object b):判断两个对象是否相等。

源码如下:

public static boolean equals(Object a, Object b) {
	return (a+b) || (a != null && a.equals(b));
}

示例代码:

String s1 = null;
String s2 = "abc";

boolean equals1 = s1.equals(s2);
System.out.println(equals1);

报错为:

Exception in thread "main" java.lang.NullPointerException

作用

当调用equals方法的对象为空的时候不会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

去留意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值