1. 程式人生 > >java中Object類

java中Object類

1.什麼是Object類?有哪些常用方法?

  答:1).Object類是所有類的父類,位於java.lang包中。

   2).陣列也是Object類的子類。

   3).Object類的常用方法有:

--- toString();

--- equals();

--- hashCode();

---.....

 2.如何使用Object類?舉例說明

   答:Object類在java.lang包下,是所有類的根。任何類的物件,都可以呼叫Object類中的方法,包括陣列物件。

  例:public class Example{

   Public void f(Object obj){

}

}

public class Test{

  public static void main(){

      Example exam = new Example();

      int[] array = new int[4];

      ......  //任何陣列

      exam.f(array);

}

}

   3.Object和Object[]之間有什麼區別?

     答:1).方法中的形參是Object型別時,任何型別的引數都可以傳進去執行。

       2).方法中形參是Object[]型別時,只有物件陣列可以傳入執行。

      例:public static void arrayTest(Object[] obj){

}

public static void main(){

  Int[] array = new int[4];

  arrayTest(array)  //錯誤出現

}

4.什麼是toString方法?舉例說明

  答:toString方法可以將任何一個物件轉換成字串返回,返回值的生成演算法為:getClass().getName() + ‘@’ + Integer. toHexString(hashCode())。

   例1):列印物件時直接呼叫類的toString方法

    public static void main(){

     Student stu1 = new Student();

      stu1.setName(“張三”);

      stu1.setAge(23);

      System.out.println(stu1);

      System.out.println(stu1);

}

列印: [email protected];

例2).類本身重寫toString方法重寫Student類的toString方法後

            public static void main(){

              Student stu1 = new Student();

              stu1.setName(“張三”);

              Stu1.setAge(23);

              System.out.println(stu1);

}

列印:Student:name = 張三,age = 23;

      例3).public class Student{

            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;

}

public String toString(){

  Return “Student:” + “name=” + name + “,age=” + age;

}

}

5.如何使用equals方法和“==”?舉例說明

  答:1).equals方法

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

      例:String類重寫了,兩個相同值的String物件相比較為

       true;

         String str = new String(“123”);

         String str = new String(“123”);

         System.out.println(str.equals(str1)); //列印為true

     2). “=”

       比較的是記憶體中的虛地址

         String str = new String(“123”);

         String str = new String(“123”);

         System.out.println(str == str1); //列印為false

6.什麼是hashCode方法?

      答:獲取物件的雜湊碼值,為16進位制

 7.equals方法與hashCode方法之間有什麼關係?

  答:1).如果兩個物件使用equals比較返回true,那麼它們的hashCode值一定要相同

   2).如果兩個物件equals比較返回false,那麼它們的hashCode值不一定不同

   3).覆蓋equals,往往需要覆蓋hashCode,可以使用Eclipse自動生成,保證equals返回true,則hashCode相同;equals返回false,則hashCode不同

   4).在Set集合部分有實際應用    

 

 

原文地址:https://www.cnblogs.com/Chenglei789/p/7573606.html