Java.lang.Object class คือ root หรือ superclass ของลำดับชั้นของคลาส ซึ่งมีอยู่ใน java.lang package . คลาสที่กำหนดไว้ล่วงหน้าและคลาสที่ผู้ใช้กำหนดทั้งหมดเป็นคลาสย่อยจาก Object ชั้นเรียน
เหตุใดคลาสอ็อบเจ็กต์จึงเป็นซูเปอร์คลาส
นำกลับมาใช้ใหม่ได้
- ทุกอ็อบเจ็กต์มีคุณสมบัติทั่วไป 11 ประการ คุณสมบัติเหล่านี้ต้องถูกนำไปใช้โดยนักพัฒนา Java ทุกคน
- เพื่อลดภาระให้กับนักพัฒนา SUN ได้พัฒนาคลาสที่เรียกว่า Object โดยใช้คุณสมบัติทั้ง 11 ประการด้วย 11 เมธอด
- เมธอดทั้งหมดนี้มีตรรกะทั่วไปร่วมกันสำหรับคลาสย่อยทั้งหมด หากตรรกะนี้ไม่เป็นไปตามข้อกำหนดของคลาสย่อย คลาสย่อยก็สามารถแทนที่ได้
รันไทม์พหุสัณฐาน
- เพื่อให้เกิดความแตกต่างของรันไทม์ เพื่อให้เราสามารถเขียนเมธอดเดียวเพื่อรับและส่งคลาสอ็อบเจกต์ประเภทใดก็ได้เป็นอาร์กิวเมนต์และเป็นประเภทส่งคืน
ฟังก์ชันทั่วไปของทุกคลาสอ็อบเจ็กต์
การเปรียบเทียบวัตถุสองชิ้น
- บูลีนสาธารณะเท่ากับ (Object obj)
กำลังเรียกค้นแฮชโค้ด
- รหัส int สาธารณะ ()
เรียกข้อมูลอ้างอิงวัตถุคลาสรันไทม์
- คลาสสุดท้ายสาธารณะ getClass()
การดึงข้อมูลออบเจ็กต์ในรูปแบบสตริง
- สตริงสาธารณะ toString()
การโคลนวัตถุ
- ป้องกัน Object clone() พ่น CloneNotSupportedException
รหัสการล้างวัตถุ/ ทรัพยากรที่เผยแพร่รหัส
- ป้องกันโมฆะจบ () โยน Throwable
เพื่อรอเธรดปัจจุบันจนกว่าเธรดอื่นจะเรียกใช้การแจ้งเตือน ()
- รอโมฆะสุดท้ายสาธารณะ () ส่ง InterruptedException
เพื่อรอเธรดปัจจุบันจนกว่าเธรดอื่นจะเรียกใช้การแจ้งเตือน () ตามระยะเวลาที่กำหนด
- รอโมฆะสุดท้ายสาธารณะ (หมดเวลานาน) ส่ง InterruptedException
เพื่อรอเธรดปัจจุบันจนกว่าเธรดอื่นจะเรียกใช้การแจ้งเตือน () ตามระยะเวลาที่กำหนด
- การรอโมฆะครั้งสุดท้ายแบบสาธารณะ (หมดเวลานาน, int nano) จะส่ง InterruptedException
แจ้งเตือนเกี่ยวกับการล็อกอ็อบเจ็กต์ขณะรอเธรด
- ประกาศโมฆะครั้งสุดท้ายสาธารณะ ()
แจ้งเตือนเกี่ยวกับการล็อกอ็อบเจ็กต์ที่รอเธรดที่รอ
- โมฆะสุดท้ายสาธารณะ notifyAll()
ตัวอย่าง
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 } }
ผลลัพธ์
This is: Adithya