Constructor Chaining ใน Java

Constructor Chaining Ni Java



ใน Java ตัวสร้างมีบทบาทสำคัญในการเริ่มต้นอินสแตนซ์ของคลาส สิ่งเหล่านี้คล้ายกับเมธอดของจาวา อย่างไรก็ตาม ชื่อคอนสตรัคเตอร์จะเหมือนกับชื่อคลาสเสมอ ในขณะที่เมธอดปกติจะมีชื่อที่ถูกต้องก็ได้ ส่วนใหญ่จะเรียกว่าวิธีการพิเศษในการประกาศวัตถุ คุณสามารถสร้างการโยงตัวสร้างซึ่งเกิดขึ้นด้วยความช่วยเหลือของการสืบทอด ตัวสร้างคลาสย่อย/ย่อยเรียกตัวสร้างพาเรนต์/ซูเปอร์คลาสก่อน จากนั้นจึงเรียกใช้ตัวสร้างคลาสย่อยได้

โพสต์นี้จะกล่าวถึงตัวสร้างการผูกมัดใน Java







Constructor Chaining ใน Java

การเปลี่ยนคอนสตรัคเตอร์เป็นขั้นตอนที่สำคัญที่สุดในการเรียกคอนสตรัคเตอร์ไปยังคอนสตรัคเตอร์อื่นตามวัตถุประสงค์ที่ระบุไว้ การใช้หลักอย่างหนึ่งของการผูกมัดตัวสร้างคือการหลีกเลี่ยงรหัสที่ซ้ำซ้อนในขณะที่มีตัวสร้างหลายตัว ทำให้โค้ดสามารถเข้าใจและอ่านได้ง่าย



มีสองวิธีในการดำเนินการ Constructor Chaining ใน Java ดังที่กล่าวไว้ด้านล่าง:



ลองดูวิธีการเหล่านี้ทีละรายการเพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับการผูกมัดคอนสตรัคเตอร์





วิธีที่ 1: Constructor Chaining ภายในคลาสเดียวกันโดยใช้คีย์เวิร์ด “this()”

เมื่อ Constructor chaining ถูกดำเนินการภายในคลาสเดียวกัน Java “ นี้() ” ใช้คำหลัก ตัวสร้างเริ่มต้นจะถูกเรียกใช้เมื่อเริ่มต้นอินสแตนซ์ของคลาส มันจะเรียกตัวสร้างอื่นโดยใช้ ' นี้ ' คำสำคัญ. จากนั้นเรียกใช้เมธอด “println()” เพื่อแสดงผลบนคอนโซล:



นาที ( ) {
นี้ ( 5 ) ;
System.out.println ( 'ตัวสร้างเริ่มต้น' ) ;
}


ตอนนี้ เรียกตัวสร้างที่สองประกอบด้วยพารามิเตอร์ “ ” และกำหนดค่าของพารามิเตอร์ในส่วน “ นี้() ' คำสำคัญ. จากนั้นใช้ “ println() ” และส่ง “a” เป็นอาร์กิวเมนต์เพื่อแสดงผล:

นาที ( int ก ) {
นี้ ( 5 , ยี่สิบ ) ;
System.out.println ( ) ;
}


ในตัวสร้างนี้ เราได้ส่งพารามิเตอร์ประเภทจำนวนเต็มสองตัวเป็น “ ' และ ' '. หลังจากนั้นเรียกใช้เมธอด “println()” และส่ง “ ก * ข ” ซึ่งจะส่งคืนผลคูณของตัวแปรเหล่านี้:

นาที ( int a, int b ) {
System.out.println ( * ) ;
}


ใน ' หลัก() ” วิธีการเรียกใช้ตัวสร้างเริ่มต้นที่จะเรียกตัวสร้างอื่นโดยอัตโนมัติและแสดงผลบนคอนโซล:

โมฆะสาธารณะคงหลัก ( อาร์กิวเมนต์สตริง [ ] ) {
นาทีใหม่ ( ) ;
}


ผลลัพธ์ของตัวสร้างทั้งหมดจะแสดงบนคอนโซล:


หากคุณต้องการเชื่อมโยงคอนสตรัคเตอร์ในหลายคลาส ให้ตรวจสอบวิธีการด้านล่าง

วิธีที่ 2: การผูกมัดตัวสร้างกับคลาสอื่นโดยใช้คำหลัก 'super ()'

คุณยังสามารถเชื่อมโยงตัวสร้างจากคลาสหนึ่งไปยังอีกคลาสหนึ่งได้ สำหรับสิ่งนี้ จะใช้คีย์เวิร์ด “super()” ในการทำเช่นนั้น ให้ใช้รหัสต่อไปนี้ในคลาสหลัก

ก่อนอื่น กำหนดตัวแปรประเภทสตริง “ ชื่อ ” และเรียกคอนสตรัคเตอร์ตัวแรกโดยใช้ชื่อคลาสหลัก:

ชื่อสตริง;
นาที ( ) {
นี้ ( '' ) ;
System.out.println ( 'ไม่มีตัวสร้างของคลาสพื้นฐาน' ) ;
}


เรียกใช้ตัวสร้างที่สองและส่งตัวแปรที่ประกาศไว้ข้างต้น “ ชื่อสตริง ” เป็นพารามิเตอร์ ใช้ ' นี้ ” คีย์เวิร์ดเพื่อเข้าถึงค่าและเรียกใช้ “ println() ” วิธีการพิมพ์:

นาที ( ชื่อสตริง ) {
this.name = ชื่อ;
System.out.println ( 'การเรียกตัวสร้างพารามิเตอร์ของฐาน' ) ;
}


ข้างใน ' หลัก() ” วิธีการเรียกคลาสลูกด้วยพารามิเตอร์ “ ชื่อ '. ที่จะเรียกตัวสร้างคลาสพาเรนต์โดยที่พารามิเตอร์ “ ชื่อ 'ผ่านไป. จากนั้นจะเรียกใช้ตัวสร้างคลาสย่อยด้วยพารามิเตอร์ “ ชื่อ ”:

โมฆะสาธารณะคงหลัก ( อาร์กิวเมนต์สตริง [ ] ) {
เด็กใหม่ ( 'ชื่อ' ) ;
}


คลาสลูกถูกสร้างขึ้นโดยใช้ ' ขยาย ” คำหลักเพื่อสืบทอดคลาสพาเรนต์และเรียกใช้คอนสตรัคเตอร์ที่สาม หลังจากนั้นเรียกตัวสร้างถัดไปและภายในตัวสร้างนี้ ให้เรียกใช้ตัวสร้างที่สองของคลาสแม่:

class Child ขยายขั้นต่ำ {
เด็ก ( ) {
System.out.println ( 'ไม่มีตัวสร้างอาร์กิวเมนต์ของคลาสลูก' ) ;
}
เด็ก ( ชื่อสตริง ) {
สุดยอด ( ชื่อ ) ;
System.out.println ( 'เรียกตัวสร้างพารามิเตอร์ของเด็ก' ) ;
}
}


เอาต์พุต


นั่นคือทั้งหมดที่เกี่ยวกับการผูกมัดตัวสร้างใน Java

บทสรุป

ใน Java การผูกคอนสตรัคเตอร์ในคลาสเดียวกันทำได้โดยใช้คีย์เวิร์ด 'this()' ในขณะที่คีย์เวิร์ด 'super()' ใช้เพื่อดำเนินการคอนสตรัคเตอร์เชนในคลาสต่างๆ การผูกมัดตัวสร้างเกิดขึ้นด้วยความช่วยเหลือของการสืบทอด ตัวสร้างคลาสย่อยเรียกตัวสร้างระดับซุปเปอร์ก่อน จากนั้นจึงเรียกตัวสร้างคลาสย่อยได้ โพสต์นี้ได้กล่าวถึงตัวสร้างที่ผูกมัดใน Java พร้อมตัวอย่างที่ใช้งานได้จริง