黑马程序员_关于object类的学习

时间:2023-02-18 20:14:58

 ----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ---------------------

Java中所有类(包括用户自己定义的类)都自动继承Object类,即Object类是所有类的父类。

Object中常用方法

public boolean equals(Object obj)

比较当前对象与obj是否为同一对象,返回值:ture/false

public String toString()

返回当前对象的字符串表达形式

public native int hashCode();

返回对象的Hash码。Hash码是标志对象的唯一值,Hash码相同的对象是同一对象

protected void finalize()throws Throwable

对象销毁时被调用

以下三个函数用于控制线程

public final native void notify();public final native void notifyAll();public final native void wait();

native型方法指由C++语言编写的方法,Java解释器对其进行转义后才执行。

“==”与equals()

"==" 一般用于基本数据类型比较。若用作两个引用对象比较,仅当引用变量引用同一个对象时,才返回true,否则false。

 void  EqualCompare()
    {
     String s1 = new String("Hello");
     String s2 = new String("Hello");
     String s3 = "Hello";
     String s4 = "Hello";     //未使用new,s4引用既存的对象(编译器创建对象之前先进行检测"Hello"是否已经存

                                                                                              在,若存在,则返回原对象的引用)
     System.out.println(s1.equals(s2));  //  true    x1行
     System.out.println(s1 ==s2);   // false       两变量引用不同对象
     System.out.println(s3.equals(s4)); //true   两变量引用相同对象
     System.out.println(s3 ==s4);    // true        两变量引用相同对象
    }

比较对象时,一般用equal()方法。

Object类方法定义:public boolean equals(Object obj){ return (this == obj);}

不同的类可方便的对该对象进行覆盖。String类就覆盖了Object类的equals()方法,所以x1行输出true.

a==b 如果a,b引用同一对象,则返回true;

a.equals(b)  如果a对象内容和b对象内容相同,则返回true

如果未重载equals()方法的类对象使用该方法与另一个对象进行比较,则调用Object的equals()方法,仍然是对象的比较,返回值为false。

 

关于object 类传智播客老师的通俗解释是:1 object:是所有对象的直接后者的间接父类,是类中的上帝。

                                                                             2 该类中的定义的肯定是所有对象都具有的功能。

                                                                             3  object 类是否有提供了对 对像的相同的方法。如果自定义类中有相同的功能,没有必要定义,只要延续父类中的功能即可,建立自己可有的功能,这就是覆盖在里面的应用。

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ---------------------