Java: this ตอนที่ 4 ใช้ this เรียกใช้เมธอด

การใช้ this เรียกใช้เมธอดจะทำให้เกิดการทำงานแบบอัตโนมัติขึ้น คือเราเรียกใช้เมธอดเดียว แต่เมธอดนั้นสามารถเรียกใช้เมธอดอื่น ๆ ให้ทำงานได้

 

โค้ดในคลาส Book

 

ตอนนี้เราเพิ่มเมธอด ขึ้นมา 2 เมธอด คือ

1. เมธอด discount(…) ทำหน้าที่ลดราคาตามค่าเปอร์เซ็นต์ที่ส่งเข้ามา

 

2. เมธอด showDiscount() ทำหน้าที่แสดงรายละเอียดการลดราคา คือ ราคาเท่าไหร่ ลดเท่าไหร่ สุดท้ายราคาสุทธิเท่าไหร่

 

ที่คลาส TestBook  เราเรียกใช้งานเมธอดดังนี้

 

เมื่อสั่ง Run เราจะได้ผลลัพธ์ดังภาพด้านล่าง ตามการลดราคาหนังสือ 2 เล่ม 15% และ 5% ตามลำดับ

java-this-what-is-this-4-1

 

มาที่คลาส Book ในเมธอด discount(…) เราสามารถเรียกใช้เมธอด showDiscount() ได้ โดยการใช้ this

 

เราใช้ this เรียกใช้เมธอด showDiscount() เมื่อเมธอก discount(…) ถูกเรียกใช้งาน เมธอด showDiscount() จะถูกเรียกใช้อัตโนมัติ

 

มาที่คลาส TestBook ให้คอมเมนต์ คำสั่งที่เรียกใช้เมธอด showDiscount() เอาไว้

 

เมื่อสั่ง Run เราก็จะได้ผลลัพธ์เช่นเดิม

java-this-what-is-this-4-1

 

ไม่ต้องใช้ this ได้มั้ย?

มาที่คลาส Book ที่เมธอด discount(…) ตรงคำสั่งเรียกใช้เมธอด this.showDiscount() ให้ลบคำสั่ง this ออกไป

 

สั่ง Run อีกครั้ง เราก็จะได้ผลลัพธ์เช่นเดิม

java-this-what-is-this-4-1

 

เพราะการเรียกใช้เมธอดในคลาสปัจจุบัน ถ้าเราไม่ใช้ this คอมไพล์เลอร์ (compiler) จะเพิ่ม this ให้เราเองอัตโนมัติ ตอนที่ทำการคอมไพล์โค้ด

 

 

สรุป

การเรียกใช้เมธอดอื่น ในเมธอดใด ๆ จะทำให้เกิดการทำงานในลักษณะอัตโนมัติขึ้น ซึ่งเราจะใช้ this ในการเรียกใช้เมธอดอื่นๆ

 

ถ้าเราไม่ระบุ this เอาไว้ compiler จะเพิ่มคำสั่งนี้ให้กับเราเองในขั้นตอนการคอมไพล์โค้ด

 

 

การใช้งาน this

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

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

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

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

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

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

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

Comments

comments

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

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