1. 程式人生 > 其它 >CH579 CH573 CH582 Central 例子應用說明二 (讀寫通知的控制說明)

CH579 CH573 CH582 Central 例子應用說明二 (讀寫通知的控制說明)

getClass方法

  • 返回引用中儲存的實際物件型別

  • 應用:通常用於判斷兩個引用中實際儲存物件型別是否一致

public static void main(String[] args) {
       Student s1 = new Student();
       Student s2 = new Student();
       s1.age=11;
       s1.name="aaa";
       s2.age=11;
       s2.name="aaa";
       //判斷s1和s2是不是同一個型別
       Class class1 =s1.getClass();
       Class class2 =s2.getClass();
       if(class1==class2){
           System.out.println("屬於同一型別");
      }else{
           System.out.println("不屬於同一型別");
      }
       System.out.println(s1.equals(s2));
  }

 

hashCode()方法

  • 返回該物件的雜湊碼值

  • 一般情況下相同的物件返回相同的雜湊碼值

//hashcode方法
System.out.println(s1.hashCode());//1324119927
System.out.println(s2.hashCode());//990368553

 

toString()方法

  • 返回該物件的字串表示

  • 可以根據程式要求覆蓋該方法,如展示物件各屬性值

equals()方法

  • 比較兩物件地址是否相同

  • 可進行覆蓋,比較兩物件的內容是否相同

public class Student {
   String name;
   int age;
   public String getName(){
       return name;
  }
   public int getAge(){
       return age;
  }
   public boolean equals(Object obj){
       //1.判斷兩物件是否為同一引用
       if(this==obj){
           return true;
      }
       //2.判斷obj是否為null
       if(obj==null){
           return false;
      }
       //3.判斷是否是同一個型別
        /*
           if(this.getClass()==obj.getClass()){}
        */
       if(obj instanceof Student){//instanceof 判斷物件是否是某種型別
           //4.強制型別轉換
           Student s = (Student)obj;
           if(this.name.equals(s.getName())&&this.age==s.getAge()){
               return true;
          }
      }
       return false;
  }
}
public class Application {
   public static void main(String[] args) {
       Student s1 = new Student();
       Student s2 = new Student();
       s1.age=11;
       s1.name="aaa";
       s2.age=11;
       s2.name="aaa";
       System.out.println(s1.equals(s2));//true
  }
}