Object类

第一章 Object类

概述

java.lang.Object类是Java语言的根类,它其中描述的所有方法子类都可以使用。如果一个类没有特别指定的父类,那么它的父类就是Object类。

Object类中的方法

主要学习两个方法 toString()和equals(Object object)

toString方法

public String toString():返回该对象的字符串表示
返回的字符串内容就是对象的类型+@+内存地址值。
源码:

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
  }

例如:

package com.review;
public class Demo {
    public static void main(String[] args) {
        Demo demo=new Demo();
        System.out.println(demo.toString());
    }
}
//返回的值是:com.review.Demo@1540e19d

另外,我们可以自己重写toString方法。

equals方法

public boolean equals(Object object): 指示其他某个对象是否与此对象相等。
默认地址比较:如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。
源码:

public boolean equals(Object obj) {
        return (this == obj);
    }

如果希望进行比较对象的内容,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。

java.util.Objects中的equals方法比较也是地址值:优化了Object类中equals方法容易抛出空指针异常的问题。
源码:

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

例如:

import java.util.Objects;

public class Student {
    public static void main(String[] args) {
        String s1="aa";
        String s2="aa";
        System.out.println(Objects.equals(s1,s2));//true
        String s3=new String("aa");
        String s4=new String("aa");
        System.out.println(Objects.equals(s3,s4));//true
        //由于String类重写了equals方法比较的内容是否相等
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值