“สวัสดี อามีโก้!”
"สวัสดี!"
"วันนี้เราจะมาศึกษาคลาส Object กัน
คุณเคยพบมาแล้วและรู้ว่า Object เป็นคลาสพื้นฐานสำหรับทุกคลาส แทบไม่มีข้อมูลเลย แต่ก็มีหลายวิธี"
"เหตุใดจึงต้องใช้เมธอด มีใครสร้างอินสแตนซ์ของคลาสออบเจกต์จริงๆ ไหม"
"ลองดูวิธีนี้: เมธอดในคลาสอ็อบเจกต์นั้นเหมือนกันในทุกคลาส กล่าวอีกนัยหนึ่ง ผู้สร้าง Java ได้ระบุเมธอดต่างๆ ที่ตามความเห็นของพวกเขา ทุกคลาสควรมี และเพิ่มเข้าไปในคลาสอ็อบเจกต์"
"และเมื่อรวมเข้ากับ polymorphism (ความสามารถในการแทนที่เมธอดของคลาส Object ในคลาสที่ได้รับ) สิ่งนี้จะกลายเป็นเครื่องมือที่ทรงพลังมาก"
"มาดูกันว่าวิธีการเหล่านี้คืออะไร:"
วิธี | คำอธิบาย |
---|---|
|
ส่งกลับการแสดงสตริงของวัตถุ |
|
วิธีการคู่ที่ใช้ในการเปรียบเทียบวัตถุ |
|
ส่งกลับวัตถุพิเศษที่อธิบายคลาสปัจจุบัน |
|
วิธีการควบคุมการเข้าถึงวัตถุจากเธรดต่างๆ สำหรับการซิงโครไนซ์เธรด |
|
วิธีนี้ช่วยให้คุณปล่อยรีซอร์สเนทีฟที่ไม่ใช่ Java: ปิดไฟล์ สตรีม ฯลฯ |
|
วิธีนี้ทำให้คุณสามารถโคลนวัตถุ: สร้างสำเนาของวัตถุ |
"วิธีการเหล่านี้สามารถแบ่งออกเป็น 6 กลุ่ม คุณคุ้นเคยกับบางวิธีแล้ว และเราจะทำความคุ้นเคยกับส่วนที่เหลือในบทเรียนต่อๆ ไป"
"ด้วยเหตุผลบางอย่าง ฉันไม่เห็นอะไรที่เป็นประโยชน์ที่นี่"
"อามิโก! ถ้าวิธีการเหล่านี้ไม่สำคัญ พวกมันคงไม่เพิ่มเข้าไปในทุก ๆ วัตถุ! ดังนั้น ฉันขอแนะนำให้คุณพิจารณาให้ละเอียดยิ่งขึ้นว่าสิ่งเหล่านี้คืออะไรและทำไมจึงจำเป็น หากพวกเขาดูเหมือนไม่สำคัญสำหรับคุณ แล้วคุณไม่เข้าใจบางอย่างหรือไม่เข้าใจบางอย่างอย่างถูกต้อง"
“ตกลง ฉันจะตั้งใจฟัง”
"เรามาเริ่มกันที่ toString() วิธีการ
"เมธอดนี้ช่วยให้คุณได้รับคำอธิบายที่เป็นข้อความของวัตถุใด ๆ การใช้งานในคลาสวัตถุนั้นง่ายมาก:"
return getClass().getName() + "@" + Integer.toHexString(hashCode());
"getClass() และ hashCode() เป็นเมธอดของคลาสอ็อบเจกต์ด้วย
การเรียกใช้เมธอดนี้มักจะให้ผลลัพธ์ดังนี้:"
java.lang.Object@12F456
"คำอธิบายเช่นนี้มีประโยชน์อย่างไร"
"คำอธิบายนี้ช่วยให้คุณทราบคลาสของวัตถุที่เรียกใช้เมธอด คุณยังสามารถแยกความแตกต่างระหว่างวัตถุได้ โดยวัตถุต่างๆ จะมีตัวเลขต่างกันตามหลังสัญลักษณ์ @"
"แต่มูลค่าที่แท้จริงของเมธอดนี้อยู่ที่อื่น เมธอดนี้สามารถเขียนทับในคลาสใดก็ได้เพื่อส่งคืนคำอธิบายวัตถุที่มีรายละเอียดมากขึ้นหรือเหมาะสม"
"แต่ยังมีมากกว่านั้น เนื่องจากคุณสามารถรับการแสดงข้อความของแต่ละวัตถุได้ Java จึงทำให้คุณสามารถใช้การสนับสนุนสำหรับ 'เพิ่ม' สตริงให้กับวัตถุได้ ลองดูสิ
:"
รหัส | เกิดอะไรขึ้นจริงๆ |
---|---|
|
|
|
|
|
|
"ใช่ ฉันใช้มันเป็นประจำ โดยเฉพาะอย่างยิ่งเมื่อฉันเขียนโปรแกรมหรือมองหาจุดบกพร่อง มันเป็นการดำเนินการที่มีประโยชน์"
GO TO FULL VERSION