Java入门:09.Java中三大特性(封装、继承、多态)--补充--所有类的父类--Object类

Object类

是所有类的终极父类。

无论是jdk自带的类或数组,还是我们自定义的类,最终都会继承Object这个父类

而且不需要写出来。

Object类中的方法所有的类都具备

  • getClass() 后面反射时会讲

  • clone() 后面讲接口和异常时会讲

  • hashCode() 后面讲集合的时候会讲

  • finalize() 后面讲异常时会讲

  • wait() , wait(long) , wait(...) , notify() , notifyAll() 后面讲线程会讲

  • toString() 返回一个字符串,用来描述当前对象

  • equals() 用来比较当前对象与另一个对象是否相等

String toString()方法

  • 返回一个字符串,代表当前对象的一个文字描述

  • 默认toString方法返回的内容包括对象的类型及对象的地址

  • 在打印对象时,会默认打印对象的toString方法的返回值。

boolean equals(Object obj) 方法

  • equals用来比较两个对象是否相等。通过源码可知, 使用的是 == 比较。

    • == 可以比较基本类型 , 也可以比较引用类型。 比较基本类型比的是值,比较引用类型比较的是地址

    • equals只能比较引用类型,默认比较的是地址,但可以通过重写,改成比较内容. 像String就重写了equals方法,改为比较内容了

  • 比较哪两个对象是否相等呢?

    • 一个是this这个对象

    • 还有一个是以参数传递过来的对象 obj

    • obj的本质也是当前类型的对象。 目的就是比较两个相同类型的对象是否相等

    • 可以通过强转,将obj还原成最开始的类型, 并完成this与obj的属性内容比较

class G{
    String name = "zs" ;
    int age = 18 ;
​
    public String toString(){
        return "my name is "+ name + ", my age is " + age ;
    }
​
    public boolean equals(Object obj){
        if( this == obj){
            return true ;
        }
​
        G g = (G)obj ;
​
        if(this.name.equals(g.name) && this.age == g.age){
            return true ;
        }else{
            return false ;
        }
    }
​
}

上一篇:全新一区PID搜索算法+TCN-LSTM+注意力机制!PSA-TCN-LSTM-Attention多变量时间序列预测(Matlab)


下一篇:Beyond Compare 比较CRC值、二进制比较、关联规则比较,有何区别?(CRC比较、CRC值比较)