ใน Java ตัวสร้างมีบทบาทสำคัญในการเริ่มต้นอินสแตนซ์ของคลาส สิ่งเหล่านี้คล้ายกับเมธอดของจาวา อย่างไรก็ตาม ชื่อคอนสตรัคเตอร์จะเหมือนกับชื่อคลาสเสมอ ในขณะที่เมธอดปกติจะมีชื่อที่ถูกต้องก็ได้ ส่วนใหญ่จะเรียกว่าวิธีการพิเศษในการประกาศวัตถุ คุณสามารถสร้างการโยงตัวสร้างซึ่งเกิดขึ้นด้วยความช่วยเหลือของการสืบทอด ตัวสร้างคลาสย่อย/ย่อยเรียกตัวสร้างพาเรนต์/ซูเปอร์คลาสก่อน จากนั้นจึงเรียกใช้ตัวสร้างคลาสย่อยได้
โพสต์นี้จะกล่าวถึงตัวสร้างการผูกมัดใน Java
Constructor Chaining ใน Java
การเปลี่ยนคอนสตรัคเตอร์เป็นขั้นตอนที่สำคัญที่สุดในการเรียกคอนสตรัคเตอร์ไปยังคอนสตรัคเตอร์อื่นตามวัตถุประสงค์ที่ระบุไว้ การใช้หลักอย่างหนึ่งของการผูกมัดตัวสร้างคือการหลีกเลี่ยงรหัสที่ซ้ำซ้อนในขณะที่มีตัวสร้างหลายตัว ทำให้โค้ดสามารถเข้าใจและอ่านได้ง่าย
มีสองวิธีในการดำเนินการ Constructor Chaining ใน Java ดังที่กล่าวไว้ด้านล่าง:
ลองดูวิธีการเหล่านี้ทีละรายการเพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับการผูกมัดคอนสตรัคเตอร์
วิธีที่ 1: Constructor Chaining ภายในคลาสเดียวกันโดยใช้คีย์เวิร์ด “this()”
เมื่อ Constructor chaining ถูกดำเนินการภายในคลาสเดียวกัน Java “ นี้() ” ใช้คำหลัก ตัวสร้างเริ่มต้นจะถูกเรียกใช้เมื่อเริ่มต้นอินสแตนซ์ของคลาส มันจะเรียกตัวสร้างอื่นโดยใช้ ' นี้ ' คำสำคัญ. จากนั้นเรียกใช้เมธอด “println()” เพื่อแสดงผลบนคอนโซล:
นาที ( ) {
นี้ ( 5 ) ;
System.out.println ( 'ตัวสร้างเริ่มต้น' ) ;
}
ตอนนี้ เรียกตัวสร้างที่สองประกอบด้วยพารามิเตอร์ “ ก ” และกำหนดค่าของพารามิเตอร์ในส่วน “ นี้() ' คำสำคัญ. จากนั้นใช้ “ println() ” และส่ง “a” เป็นอาร์กิวเมนต์เพื่อแสดงผล:
นี้ ( 5 , ยี่สิบ ) ;
System.out.println ( ก ) ;
}
ในตัวสร้างนี้ เราได้ส่งพารามิเตอร์ประเภทจำนวนเต็มสองตัวเป็น “ ก ' และ ' ข '. หลังจากนั้นเรียกใช้เมธอด “println()” และส่ง “ ก * ข ” ซึ่งจะส่งคืนผลคูณของตัวแปรเหล่านี้:
System.out.println ( ก * ข ) ;
}
ใน ' หลัก() ” วิธีการเรียกใช้ตัวสร้างเริ่มต้นที่จะเรียกตัวสร้างอื่นโดยอัตโนมัติและแสดงผลบนคอนโซล:
นาทีใหม่ ( ) ;
}
ผลลัพธ์ของตัวสร้างทั้งหมดจะแสดงบนคอนโซล:
หากคุณต้องการเชื่อมโยงคอนสตรัคเตอร์ในหลายคลาส ให้ตรวจสอบวิธีการด้านล่าง
วิธีที่ 2: การผูกมัดตัวสร้างกับคลาสอื่นโดยใช้คำหลัก 'super ()'
คุณยังสามารถเชื่อมโยงตัวสร้างจากคลาสหนึ่งไปยังอีกคลาสหนึ่งได้ สำหรับสิ่งนี้ จะใช้คีย์เวิร์ด “super()” ในการทำเช่นนั้น ให้ใช้รหัสต่อไปนี้ในคลาสหลัก
ก่อนอื่น กำหนดตัวแปรประเภทสตริง “ ชื่อ ” และเรียกคอนสตรัคเตอร์ตัวแรกโดยใช้ชื่อคลาสหลัก:
ชื่อสตริง;นาที ( ) {
นี้ ( '' ) ;
System.out.println ( 'ไม่มีตัวสร้างของคลาสพื้นฐาน' ) ;
}
เรียกใช้ตัวสร้างที่สองและส่งตัวแปรที่ประกาศไว้ข้างต้น “ ชื่อสตริง ” เป็นพารามิเตอร์ ใช้ ' นี้ ” คีย์เวิร์ดเพื่อเข้าถึงค่าและเรียกใช้ “ println() ” วิธีการพิมพ์:
this.name = ชื่อ;
System.out.println ( 'การเรียกตัวสร้างพารามิเตอร์ของฐาน' ) ;
}
ข้างใน ' หลัก() ” วิธีการเรียกคลาสลูกด้วยพารามิเตอร์ “ ชื่อ '. ที่จะเรียกตัวสร้างคลาสพาเรนต์โดยที่พารามิเตอร์ “ ชื่อ 'ผ่านไป. จากนั้นจะเรียกใช้ตัวสร้างคลาสย่อยด้วยพารามิเตอร์ “ ชื่อ ”:
เด็กใหม่ ( 'ชื่อ' ) ;
}
คลาสลูกถูกสร้างขึ้นโดยใช้ ' ขยาย ” คำหลักเพื่อสืบทอดคลาสพาเรนต์และเรียกใช้คอนสตรัคเตอร์ที่สาม หลังจากนั้นเรียกตัวสร้างถัดไปและภายในตัวสร้างนี้ ให้เรียกใช้ตัวสร้างที่สองของคลาสแม่:
เด็ก ( ) {
System.out.println ( 'ไม่มีตัวสร้างอาร์กิวเมนต์ของคลาสลูก' ) ;
}
เด็ก ( ชื่อสตริง ) {
สุดยอด ( ชื่อ ) ;
System.out.println ( 'เรียกตัวสร้างพารามิเตอร์ของเด็ก' ) ;
}
}
เอาต์พุต
นั่นคือทั้งหมดที่เกี่ยวกับการผูกมัดตัวสร้างใน Java
บทสรุป
ใน Java การผูกคอนสตรัคเตอร์ในคลาสเดียวกันทำได้โดยใช้คีย์เวิร์ด 'this()' ในขณะที่คีย์เวิร์ด 'super()' ใช้เพื่อดำเนินการคอนสตรัคเตอร์เชนในคลาสต่างๆ การผูกมัดตัวสร้างเกิดขึ้นด้วยความช่วยเหลือของการสืบทอด ตัวสร้างคลาสย่อยเรียกตัวสร้างระดับซุปเปอร์ก่อน จากนั้นจึงเรียกตัวสร้างคลาสย่อยได้ โพสต์นี้ได้กล่าวถึงตัวสร้างที่ผูกมัดใน Java พร้อมตัวอย่างที่ใช้งานได้จริง