Object類,Object類中的常用方法


 

一、Object

1.1 Object類是所有類的父類,位於java.lang包中

數組也是Object類的子類

Object類的常用方法

 toString();

 equals();

 hashCode();

Object類在java.lang包下,是所有類的根。任何類的對象,都可以調用Object類中的方法,包括數組對象。

1.2 ObjectObject[]之間的區別

方法中的形參是Object類型時,任何類型的參數都可以傳進去執行。

方法中形參是Object[]類型時,只有對象數組可以傳入執行。

例:

public  static void arrayTest(Object[] obj){

}    

public static  void main(){

   int[] array=new  int[4];

   arrayTest(array)//錯誤出現

}

二、Object類中的常用方法

1. toString方法;

   toString方法可以將任何一個對象轉換成

   字符串返回,返回值的生成算法為:getClass().getName() + '@' + Integer.toHexString(hashCode())

2. equals方法;

   Object類中的equals方法,用來比較兩個引用的虛地址。當且僅當兩個引用在物理上是同一個對象時,返回值為true,否則將返回false

任何類可以根據實際需要,覆蓋toStringequals方法,實現自定義的邏輯。

public  class Zilei {

private String name = "123";// 學生姓名

    private int age;// 年齡

    public String getName() {

       return name;

    }

   public void setName(String name) {

    this.name = name;

    }

   public int getAge() {

      return age;

    }

    public void setAge(int age) {

       this.age = age;

    }

   //重寫toString方法

    public String toString(){

       return"Student:"+"name="+name+",age="+age;

}

}

---------------------

類本身重寫toString方法

   重寫Student類的toString方法后

  public class Ttttttt {

public static void main(String[] args) {

Zilei stu1=new Zilei();

    stu1.setName("張三");

    stu1.setAge(23);//如果把姓名和年齡不輸入,就會輸出Student:name=123,age=0

    System.out.println(stu1);

}

}

打印: Student: name=張三,age=23

三、equals方法和“==

equals方法

   比較對象的虛地址,但是可以在類中被重寫。

   :String類重寫了,兩個相同值的String對象相比較為   true;

    String str=new String(123);

    String str1=new String(123);

    System.out.println(str.equals(str1));à打印為true.

==

    比較的是內存中的虛地址

     String str=new String(123);

     String str1=new String(123);

     System.out.println(str==str1);à打印為false

四.hashCode方法

獲取對象的哈希碼值,為16進制

equals方法與hashCode方法關系

  如果兩個對象使用equals比較返回true,那么它們的hashCode值一定要相同。

   如果兩個對象equals比較返回false,那么它們的hashCode值不一定不同,覆蓋equals,往往需要覆蓋hashCode,可以使用Eclipse自動生成,保證equals返回true,則hashCode相同;equals返回false,則hashCode不同。在Set集合部分有實際應用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM