Object类常用方法equals和toString

Object类的常用方法

Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object

==  可以比较的数据类型:

  • 基本数据类型(也称原始数据类型) 应用双等号(==),比较的是他们的值。
  • 引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)。

equals方法可以比较的数据类型:

  • 只能比较引用数据类型,在没有重写的情况下默认情况下还是比较数据的内存地址。所以我们要重写该方法。
  • JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了

重写equalsf方法主要事项:

  • 先判断传入进来的类是是不是自己,是就可以直接返回
  • 在判断传入进来的类是不是本类创建对象的。使用  对象名 instanceof 类名 查看。
  • 在把类名向下转型,最后在返回比较结果

注意事项:我们一般都使用自动生成的equals 方法

@Override
    public boolean equals(Object obj) {  // 这是系统自动生成的
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        demo01 other = (demo01) obj;
        if (age != other.age)
            return false;
        return true;
    }

toString方法

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

可以自动生成。我们打印引用类型的变量名就是调用toString方法

class Person extends Object{


int age ;


//根据Person类的属性重写toString方法


public String toString() {


return "Person [age=" + age + "]";


     }


}

猜你喜欢

转载自www.cnblogs.com/wurengen/p/10448292.html