ถาม: คลาสวัตถุคืออะไร?
คำตอบ: คลาสวัตถุจะถูกเก็บไว้ในแพ็คเกจ java.lang และเป็นคลาสแม่ที่ดีที่สุดของคลาส Java ทั้งหมด (ยกเว้นคลาสวัตถุ) แน่นอนอาร์เรย์ยังสืบทอดคลาสวัตถุ อย่างไรก็ตามอินเทอร์เฟซไม่ได้สืบทอดคลาสวัตถุและคลาสวัตถุไม่ได้ทำหน้าที่เป็นคลาสแม่ของอินเตอร์เฟส
ต่อไปเราวิเคราะห์วัตถุผ่านตัวอย่าง
คลาสสาธารณะ ObjectStu {/*คลาส Object คลาส: คลาสหลักของคลาสทั้งหมดใน Java, คลาสระดับบนสุด*เท่ากับ: พิจารณาว่าวัตถุสองชิ้นนั้น "เท่ากัน"; * HashCode: ส่งคืนค่ารหัสแฮชของวัตถุซึ่งเป็นจำนวนเต็ม* เนื่องจากคอนเทนเนอร์ที่ตามมาเช่น HashSet และ HashMap จะลดระดับองค์ประกอบ; ดังนั้นเท่ากับและ hashcode จะต้องเขียนใหม่ในเวลาเดียวกัน; * เกณฑ์ที่จะพบหลังจากการเขียนใหม่: * เมื่อผลลัพธ์ของค่าเท่ากับเป็นจริงค่า hashcode ของวัตถุทั้งสองจะต้องเท่ากัน; * เมื่อผลลัพธ์ของเท่ากับเท็จค่า hashcode ของวัตถุทั้งสองจะต้องไม่เท่ากัน (HashCodes สามารถเท่ากันได้ แต่ถ้าไม่เท่ากันก็สามารถปรับปรุงประสิทธิภาพได้) *ToString: ส่งคืนการแสดงสตริงของฟังก์ชัน *ฟังก์ชั่น: มันสะดวกในการดูคุณสมบัติของวัตถุในโปรแกรมและการดีบักโค้ด *ดีบั๊กการเรียนรู้: *1 ตั้งค่าเบรกพอยต์ที่อาจมีข้อบกพร่อง *2.Run เป็น debug *3.f6, เรียกใช้รหัสปัจจุบัน; F5 ป้อนวิธีการของรหัสปัจจุบันในประโยคนี้ F8 ข้ามไปยังจุดพักถัดไปอย่างรวดเร็วหากไม่มีจุดพักถัดไปให้เรียกใช้รหัสที่เหลือทั้งหมด *เท่ากับ: *1 ความสอดคล้อง: ใช้วัตถุ A เพื่อเรียกค่าเท่ากับและวัตถุ B เพื่อเปรียบเทียบผลลัพธ์ของแต่ละครั้งควรเหมือนกัน*2 การสะท้อนกลับ: วัตถุ A การโทรเท่ากับการเปรียบเทียบวัตถุ B และวัตถุ B การโทรเท่ากับการเปรียบเทียบวัตถุ A ควรเป็นโมฆะ*/สาธารณะคงที่หลัก (String [] args) {บุคคลต่อ = บุคคลใหม่ ("Xiao Wang", 10,150); PERS PER1 = บุคคลใหม่ ("Xiao Wang", 20,140) ต่อ; System.out.println (ต่อ == Per1); System.out.println (Per.equals (Per1)); String str = "123"; str.equals ("123"); str.hashcode (); system.out.println (per.hashcode ()); system.out.println (per1.hashcode ()); t.println (per2.hashCode ()); System.out.println (per2.hashCode ()); System.out.println (ต่อ); System.out.println (Per1);}} คลาสคลาส บุคคล {ชื่อสตริง; อายุ int; ความสูง int; บุคคลสาธารณะ (ชื่อสตริง, อายุ int, ความสูง int) {super (); this.height = ความสูง; this.name = name; this.age = age;}/*@override Public Boolean เท่ากับ (Object obj) } if (OBJ InstanceOf Person) {บุคคลต่อ = (บุคคล) OBJ; if (this.name.equals (per.name) && this.age == ต่อ.) {return true; }} return false; }*/// rewrite hashCode/*@reverride สาธารณะ int hashCode () {return name.hashCode ()+อายุ*31+ความสูง*31; } */@reverride public int hashCode () {สุดท้าย int prime = 31; int result = 1; result = prime * result + age; result = prime * result + height; result = prime * result * ((ชื่อ == null)? 0: name.hashCode () (getClass ()! = obj.getClass ()) return false; บุคคลอื่น = (บุคคล) obj; ถ้า (อายุ! = อื่น ๆ ) กลับเท็จถ้า (ความสูง! = อื่น ๆ . height) return false; ถ้า (name == null) {ถ้าอื่น ๆ {return "person [name ="+name+", age ="+age+"]";}}สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการวิเคราะห์อินสแตนซ์คลาสวัตถุใน Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงเว็บไซต์นี้ต่อไปได้:
คำอธิบายโดยละเอียดเกี่ยวกับรหัสชั้นเรียนการทดสอบภายใน Java
การวิเคราะห์รหัสทดสอบมรดกใน Java
ตัวอย่างการใช้รหัสของสแต็ค (สแต็ค) ใน Java
หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!