Java: this ตอนที่ 2 ใช้ this เรียกใช้คอนสตรัคเตอร์

ในกรณีที่เราสร้างคอนสตรัคเตอร์ (constructor) หลายแบบเอาไว้ใช้งาน หรือที่เราเรียกว่า Multiple Constructors หรือ Constructor Overloading เราสามารถใช้ this เพื่อเรียกใช้คอนสตรัคเตอร์ต่าง ๆ ได้ดังนี้

 

สมมติว่าเรามีคลาส Book ที่มีคอนสตรัคเตอร์ 2 แบบ คือ

1. แบบที่รับค่าทั้งหมดเข้ามากำหนดค่าเริ่มต้นให้กับตัวแปร

2. แบบที่ไม่รับค่า id เข้ามากำหนดค่าเริ่มต้นให้กับตัวแปร

 

มาดูโค้ดตัวอย่างกันค่ะ

 

จากโค้ดด้านบนจะเห็นว่า การใช้ this เรียกใช้คอนสตรัคเตอร์นั้นทำให้โค้ดดูสั้น และอ่านง่ายมากขึ้น

 

เราใช้ this เรียกใช้ คอนสตรัคเตอร์ และส่งพารามิเตอร์ตามที่คอนสตรัคเตอร์ต้องการไปให้

 

และเราสามารถสร้างออบเจ็กต์จากคลาส Book ได้ 2 แบบดังนี้

 

เมื่อสั่ง Run จะได้ผลดังภาพด้านล่าง

java-this-what-is-this-2-1

 

เรามักจะได้งานงานโค้ดลักษณะนี้ตอนที่ทำงานกับฐานข้อมูล เช่น

 

ถ้าเราจะเพิ่มข้อมูล แต่กำหนดค่าในตารางในฐานข้อมูลให้เพิ่มค่า id ให้อัตโนมัติอยู่แล้ว เราก็ไม่ต้องส่งค่า id ไปกำหนดค่าให้กับตัวแปร

 

แต่เมื่อเราทำการแก้ไขเปลี่ยนแปลงข้อมูล เราจะต้องส่งค่า id ไปด้วยเสมอ เราก็เลือกใช้คอนสตรัคเตอร์ที่กำหนดค่า id ได้เช่นกัน

 

Note: การใช้ this ลักษณะนี้คำสั่ง this จะต้องเป็นคำสั่งแรกของเมธอดนั้น ๆ เสมอ

 

สรุป

ส่วนใหญ่เรามักจะใช้งานคอนสตรัคเตอร์เพื่อกำหนดค่าเริ่มต้นให้กับออบเจ็กต์ และ Multiple Constructors ทำให้เรากำหนดค่าเริ่มต้นของออบเจ็กต์ได้หลากหลายมากขึ้น และเราสามารถใช้ this เรียกใช้คอนสตรัคเตอร์ได้ ตามต้องการ

 

 

การใช้งาน this

เราสามารถใช้ this เพื่อทำงานต่าง ๆ ได้ดังนี้

1. การใช้ this เรียกใช้คอนสตรัคเตอร์

2. การใช้ this อ้างถึงตัวแปร

3. การใช้ this เรียกใช้เมธอด

4. การใช้ this เพื่อส่งออบเจ็กต์ผ่านทางเมธอด

5. การใช้ this เพื่อส่งออบเจ็กต์ผ่านทางคอนสตรัคเตอร์

6. การใช้ this เพื่อคืนค่าตำแหน่งออบเจ็กต์

Comments

comments

ธมนวรรณ มณีจันทร์

เป้าหมาย : "พัฒนาคุณภาพชีวิตผู้คน ผ่านการส่งมอบความรู้ ด้วยเทคโนโลยีที่ดีที่สุด" ... ประวัติ