คำนำ
รหัสสแตติกมีความสำคัญกว่ารหัสที่ไม่คงที่เนื่องจากสมาชิกที่แก้ไขโดยสแตติกเป็นสมาชิกชั้นเรียนทั้งหมดและจะถูกดำเนินการเมื่อ JVM โหลดคลาส สมาชิกที่ไม่ได้แก้ไขโดยคงที่เรียกว่าสมาชิกอินสแตนซ์ จำเป็นต้องสร้างวัตถุก่อนที่จะสามารถโหลดลงในหน่วยความจำฮีปได้ ดังนั้นจึงเป็นที่ต้องการแบบคงที่สำหรับไม่คงที่
เมื่อดำเนินการคอนสตรัคเตอร์ (วิธีการก่อสร้าง) มีสามขั้นตอนโดยนัยก่อนที่จะดำเนินการตามวิธีการ:
1. คำสั่ง Super อาจมีสามสถานการณ์ดังต่อไปนี้:
1) บรรทัดแรกของตัวสร้างคือคำสั่งนี้และสามขั้นตอนโดยนัยจะไม่ถูกดำเนินการ
2) บรรทัดแรกของตัวคอนสตรัคเตอร์เป็นคำสั่งที่ยอดเยี่ยมและตัวสร้างของคลาสแม่ที่สอดคล้องกันเรียกว่า
3) บรรทัดแรกของตัวสร้างตัวสร้างไม่ใช่คำสั่งนี้หรือคำสั่ง Super และ Super () เรียกว่าโดยปริยายนั่นคือตัวสร้างเริ่มต้นของคลาสแม่ซึ่งเป็นสาเหตุที่คลาสแม่มักจะต้องจัดทำคอนสตรัคเตอร์เริ่มต้น
2. เริ่มต้นตัวแปรที่ไม่คงที่;
3. สร้างบล็อกรหัส
จากนี้เราจะเห็นได้ว่าบล็อกรหัสการก่อสร้างมีความสำคัญเหนือกว่าวิธีการของวิธีการก่อสร้าง แต่คำหลักนี้และคำหลัก Super ไม่สามารถปรากฏในเวลาเดียวกันและสามารถอยู่ในบรรทัดแรกของรหัสเท่านั้น หากคำหลักนี้ปรากฏขึ้นสามขั้นตอนโดยนัยจะไม่ถูกดำเนินการ
ก่อนอื่นให้ดูชั้นเรียนต่อไปนี้แล้วตัดสินผลลัพธ์ของพวกเขา:
คลาสสาธารณะ A {Static {System.out.print (1); } สาธารณะ a () {system.out.print (2); }} คลาสสาธารณะ B ขยาย {static {system.out.print ("A"); } สาธารณะ b () {system.out.print ("b"); }} คลาสสาธารณะ c {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {a = new b (); a = new b (); - ลำดับการดำเนินการของชั้นเรียนหลักและชั้นเด็ก
ลักษณะการดำเนินการของตัวแปรคง
หมายเหตุเกี่ยวกับวิธีการแทนที่
1. เมื่อทั้งคลาสผู้ปกครองและเด็กมีบล็อกรหัสและตัวสร้างคำสั่งการดำเนินการมีดังนี้:
บล็อกรหัสสแตติกคลาสแม่> บล็อกรหัส subclass คงที่
ตัวสร้างคลาสหลัก> ตัวสร้างคลาสย่อย (ก่อนอื่นมีพ่อแล้วมีลูก)
หากมันเป็นความสัมพันธ์การสืบทอดหลายระดับคลาสหลักในระดับสูงสุดจะถูกดำเนินการก่อนและลดลงในทางกลับกัน
สรุป: ต้องการการดำเนินการแบบคงที่การดำเนินการคลาสแม่เป็นที่ต้องการ
หมายเหตุ: บล็อกรหัสคงที่จะถูกดำเนินการเมื่อ JVM โหลดคลาสและบล็อกรหัสคงที่จะถูกเรียกใช้งานเพียงครั้งเดียว
2. เมื่อเรียกวิธีการในชั้นเรียนก่อนที่จะดำเนินการตัวแปรวิธีการตัวแปรสมาชิกในคลาสจะต้องได้รับการกำหนดก่อน หากไม่มีการกำหนดค่าเฉพาะในรหัสจะมีค่าเริ่มต้น คำสั่งการมอบหมายของตัวแปรสมาชิกจะดำเนินการตามลำดับก่อนและหลัง
หากมีทั้งการมอบหมายโดยตรงและการมอบหมายตัวสร้างให้ดำเนินการตามลำดับ
3. แทนที่ (แทนที่) โอเวอร์โหลด (โอเวอร์โหลด)
การโอเวอร์โหลดเป็นชื่อวิธีประเภทการส่งคืนเหมือนกันความแตกต่างเพียงอย่างเดียวคือพารามิเตอร์เมธอดนั้นแตกต่างกัน (ประเภทพารามิเตอร์ที่แตกต่างกันหรือประเภทพารามิเตอร์ที่แตกต่างกัน)
เขียนใหม่:
ความหลากหลาย:
การอ้างอิงของคลาสหลักชี้ไปที่วัตถุของคลาสย่อย วิธีการที่ดำเนินการเมื่อเรียกใช้เป็นวิธีของคลาสย่อย วิธีการของคลาสแม่จะไม่ถูกดำเนินการ
polymorphism ที่เรียกว่าหมายถึงการอ้างอิงของคลาสแม่หรือประเภทอินเตอร์เฟสสามารถชี้ไปที่คลาสย่อยหรืออินสแตนซ์ (วัตถุ) ของคลาสที่ใช้อินเตอร์เฟส
หลังจากอ่านคำแนะนำข้างต้นคุณควรทราบผลลัพธ์ผลลัพธ์ของโปรแกรมข้างต้น
ผลลัพธ์ผลลัพธ์คือ: 1a2b2b
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com