คำหลักนี้ใน Java
คำสำคัญนี้คืออะไร Java?
คำสำคัญนี้ใน Java เป็นตัวแปรอ้างอิงที่อ้างถึงวัตถุปัจจุบันของวิธีการหรือตัวสร้าง วัตถุประสงค์หลักของการใช้คำสำคัญนี้ใน Java คือการลบความสับสนระหว่างแอตทริบิวต์คลาสและพารามิเตอร์ที่มีชื่อเหมือนกัน
การใช้คำสำคัญนี้ใน Java
ต่อไปนี้คือการใช้คำสำคัญ 'this' ในรูปแบบต่างๆ Java:
- สามารถใช้เพื่ออ้างอิงตัวแปรอินสแตนซ์ของคลาสปัจจุบัน
- สามารถใช้เพื่อเรียกใช้หรือเริ่มต้นตัวสร้างคลาสปัจจุบัน
- มันสามารถส่งผ่านเป็นอาร์กิวเมนต์ในการเรียกเมธอด
- มันสามารถส่งผ่านเป็นอาร์กิวเมนต์ในการเรียกคอนสตรัคเตอร์
- สามารถใช้เพื่อส่งคืนอินสแตนซ์คลาสปัจจุบัน
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ทำความเข้าใจคำหลัก 'นี้' ด้วยตัวอย่าง
- ชั้น: บัญชีชั้นเรียน
- ตัวแปรอินสแตนซ์: ก และ ข
- ข้อมูลชุดวิธี: เพื่อตั้งค่าสำหรับ a และ b
- วิธีการแสดงข้อมูล: เพื่อแสดงค่าของ a และ b
- วิธีการหลัก: โดยที่เราสร้างอ็อบเจ็กต์สำหรับคลาสบัญชีและวิธีการโทรตั้งค่าข้อมูลและแสดงข้อมูล
มาคอมไพล์และรันโค้ดกัน
ผลลัพธ์ที่คาดหวังของเราสำหรับ A และ B ควรเริ่มต้นเป็นค่า 2 และ 3 ตามลำดับ
แต่ค่าเป็น 0 เพราะเหตุใด? ให้สอบสวน.
ในเมธอด Set data อาร์กิวเมนต์จะถูกประกาศเป็น a และ b ในขณะที่ตัวแปรอินสแตนซ์จะถูกตั้งชื่อเป็น a และ b เช่นกัน
ระหว่างการดำเนินการ คอมไพเลอร์จะสับสนว่า "a" ทางด้านซ้ายของตัวดำเนินการที่กำหนดเป็นตัวแปรอินสแตนซ์หรือตัวแปรโลคัล ดังนั้น คอมไพเลอร์จะไม่ตั้งค่า "a" เมื่อเรียกใช้เมธอด set data
วิธีแก้ไขคือคีย์เวิร์ด "นี้"
ผนวกทั้ง 'a' และ 'b' ด้วย Java คำสำคัญนี้ตามด้วยตัวดำเนินการจุด (.)
ในระหว่างการเรียกใช้โค้ดเมื่อวัตถุเรียกเมธอด 'setdata' คำหลัก 'นี้' จะถูกแทนที่ด้วยตัวจัดการวัตถุ "obj" (ดูภาพด้านล่าง)
ตอนนี้คอมไพเลอร์รู้แล้วว่า
- 'a' ทางด้านซ้ายมือคือตัวแปรอินสแตนซ์
- ในขณะที่ 'a' ทางด้านขวามือเป็นตัวแปรท้องถิ่น
เหตุการณ์ ตัวแปร เริ่มต้นได้อย่างถูกต้อง และเอาต์พุตที่คาดหวังจะปรากฏขึ้น
สมมติว่าคุณฉลาดพอที่จะเลือกชื่อที่แตกต่างกันสำหรับตัวแปรอินสแตนซ์และอาร์กิวเมนต์ของเมธอด
แต่คราวนี้ คุณสร้างอ็อบเจ็กต์สองรายการของคลาส โดยแต่ละอ็อบเจ็กต์เรียกใช้เมธอด set data
วิธีที่คอมไพเลอร์จะพิจารณาว่าควรจะทำงานบนตัวแปรอินสแตนซ์ของวัตถุ 1 หรือวัตถุ 2
ดีที่ คอมไพเลอร์ต่อท้ายโดยปริยาย ตัวแปรอินสแตนซ์ที่มีคีย์เวิร์ด “this” (รูปภาพด้านล่าง)
เมื่อวัตถุ 1 เรียกใช้เมธอด set data ตัวแปรตัวอย่างจะถูกต่อท้ายด้วยตัวแปรอ้างอิง
ขณะที่ออบเจ็กต์ 2 กำลังเรียกใช้เมธอด set data ตัวแปรอินสแตนซ์ของออบเจ็กต์ 2 ได้รับการแก้ไข
กระบวนการนี้ได้รับการดูแลโดยคอมไพเลอร์เอง คุณไม่จำเป็นต้องต่อท้ายคำหลัก 'this' อย่างชัดเจน เว้นแต่จะมีสถานการณ์พิเศษตามตัวอย่างของเรา
คำหลักนี้ใน Java พร้อมตัวอย่าง
ตัวอย่าง: เพื่อเรียนรู้การใช้คำสำคัญ “นี้”
ขั้นตอน 1) คัดลอกโค้ดต่อไปนี้ลงใน Notepad
class Account{ int a; int b; public void setData(int a ,int b){ a = a; b = b; } public void showData(){ System.out.println("Value of A ="+a); System.out.println("Value of B ="+b); } public static void main(String args[]){ Account obj = new Account(); obj.setData(2,3); obj.showData(); } }
ขั้นตอน 2) บันทึก คอมไพล์ และรันโค้ด
ขั้นตอน 3) ค่าของ a & b แสดงเป็นศูนย์ใช่หรือไม่ หากต้องการแก้ไขข้อผิดพลาดให้ผนวกบรรทัด # 6 & 7 ด้วย “นี้" คำสำคัญ.
this.a =a; this.b =b;
ขั้นตอน 4) บันทึก คอมไพล์ และรันโค้ด คราวนี้ ค่าของ a & b ถูกตั้งค่าเป็น 2 และ 3 ตามลำดับ
สรุป
- นี้ คำสำคัญใน Java เป็นตัวแปรอ้างอิงที่อ้างอิงถึงวัตถุปัจจุบัน
- การใช้คีย์เวิร์ดนี้ประการหนึ่งคือ Java คือการอ้างอิงตัวแปรอินสแตนซ์คลาสปัจจุบัน
- สามารถใช้เพื่อเรียกใช้หรือเริ่มต้นตัวสร้างคลาสปัจจุบัน
- มันสามารถส่งผ่านเป็นอาร์กิวเมนต์ในการเรียกเมธอด
- ตัวชี้ในนี้ Java สามารถส่งผ่านเป็นอาร์กิวเมนต์ในการเรียกใช้คอนสตรัคเตอร์ได้
- ผู้ดำเนินการรายนี้ใน Java สามารถใช้เพื่อส่งคืนอินสแตนซ์คลาสปัจจุบันได้
- นี้ใน Java เป็นการอ้างอิงถึงวัตถุปัจจุบันที่มีการเรียกใช้วิธีการ
- คุณสามารถใช้คีย์เวิร์ด “this” เพื่อหลีกเลี่ยงความขัดแย้งในการตั้งชื่อในเมธอด/ตัวสร้างอินสแตนซ์/อ็อบเจ็กต์ของคุณ
ตรวจสอบบทความของเราเกี่ยวกับ Java คำถามในการสัมภาษณ์:- คลิกที่นี่