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.ObjectObject[]之間有什么區別?

     答: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);

}

打印: Student@152b6651;

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集合部分有實際應用    


免責聲明!

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



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