Computer >> Máy Tính >  >> Lập trình >> Java

Tại sao lớp Object là siêu lớp cho tất cả các lớp trong Java?


Java.lang.Object lớp là gốc hoặc lớp cha của hệ thống phân cấp lớp, có trong gói java.lang . Tất cả các lớp được xác định trước và các lớp do người dùng xác định là các lớp con từ Đối tượng lớp học.

Tại sao lớp đối tượng là lớp cha

Khả năng sử dụng lại

  • Mọi đối tượng đều có 11 thuộc tính chung, các thuộc tính này phải được triển khai bởi mọi nhà phát triển Java.
  • Để giảm bớt gánh nặng cho nhà phát triển, SUN đã phát triển một lớp có tên là Đối tượng bằng cách triển khai tất cả 11 thuộc tính này với 11 phương thức.
  • Tất cả các phương thức này đều có logic chung chung cho tất cả các lớp con, nếu logic này không đáp ứng yêu cầu của lớp con thì lớp con có thể ghi đè nó

Đa hình thời gian chạy

  • Để đạt được tính đa hình thời gian chạy để chúng ta có thể viết một phương thức duy nhất để nhận và gửi bất kỳ loại đối tượng lớp nào dưới dạng đối số và kiểu trả về.

Các chức năng chung của mọi đối tượng lớp

So sánh hai đối tượng

  • public boolean bằng (Object obj)

Truy xuất mã băm

  • public int hashcode ()

Truy xuất tham chiếu đối tượng lớp thời gian chạy

  • public Final Class getClass ()

Truy xuất thông tin đối tượng ở định dạng Chuỗi

  • public String toString ()

Đối tượng nhân bản

  • Đối tượng được bảo vệ clone () ném CloneNotSupportedException

Mã dọn dẹp đối tượng / mã giải phóng tài nguyên

  • bảo vệ void finalize () ném Có thể ném

Để đợi chuỗi hiện tại cho đến khi một chuỗi khác gọi thông báo ()

  • public Final void wait () ném InterruptException

Để đợi luồng hiện tại cho đến khi luồng khác gọi thông báo () một khoảng thời gian cụ thể

  • công khai cuối cùng trống chờ đợi (thời gian chờ lâu) ném ra InterruptException

Để đợi luồng hiện tại cho đến khi luồng khác gọi thông báo () một khoảng thời gian cụ thể

  • công khai cuối cùng trống chờ đợi (thời gian chờ lâu, int nano) ném InterruptException

Thông báo về tính khả dụng của khóa đối tượng đối với chuỗi chờ

  • khoảng trống cuối cùng công khai thông báo ()

Thông báo về tính khả dụng của khóa đối tượng cho các chuỗi đang chờ

  • công khai cuối cùng vô hiệu thông báoAll ()

Ví dụ

class Thing extends Object implements Cloneable {
   public String id;
   public Object clone() throws CloneNotSupportedException {
      return super.clone();
   }
   public boolean equals(Object obj) {
      boolean result = false;
      if ((obj!=null) && obj instanceof Thing) {
         Thing t = (Thing) obj;
         if (id.equals(t.id)) result = true;
      }
      return result;
   }
   public int hashCode() {
      return id.hashCode();
   }
   public String toString() {
      return "This is: "+id;
   }
}
public class Test {
   public static void main(String args[]) throws Exception {
      Thing t1 = new Thing(), t2;
      t1.id = "Raj";
      t2 = t1; // t1 == t2 and t1.equals(t2)
      t2 = (Thing) t1.clone(); // t2!=t1 but t1.equals(t2)
      t2.id = "Adithya"; // t2!=t1 and !t1.equals(t2)
      Object obj = t2;
      System.out.println(obj); //Thing = Adithya
   }
}

Đầu ra

This is: Adithya