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