คำหลักนี้ใน Java
⚡ สรุปอย่างชาญฉลาด
Java คีย์เวิร์ด `this` เป็นตัวแปรอ้างอิงที่ชี้ไปยังอ็อบเจ็กต์ปัจจุบันภายในเมธอดหรือคอนสตรัคเตอร์ Lessเนื้อหาครอบคลุมวัตถุประสงค์ การใช้งานทั่วไป ความขัดแย้งในการตั้งชื่อ การเชื่อมโยงคอนสตรัคเตอร์ และตัวอย่างการใช้งาน

คำสำคัญนี้คืออะไร Java?
การขอ คำสำคัญนี้ใน Java เป็นตัวแปรอ้างอิงที่อ้างถึงวัตถุปัจจุบันของวิธีการหรือตัวสร้าง วัตถุประสงค์หลักของการใช้คำสำคัญนี้ใน Java เพื่อขจัดความสับสนระหว่างแอตทริบิวต์ของคลาสและพารามิเตอร์ที่มีชื่อเดียวกัน
การใช้คำสำคัญนี้ใน Java
ต่อไปนี้คือตัวอย่างการใช้งานคีย์เวิร์ด `this` ในรูปแบบต่างๆ Java:
- สามารถใช้เพื่ออ้างถึงตัวแปรอินสแตนซ์ของคลาสปัจจุบันได้
- สามารถใช้เพื่อเรียกหรือเริ่มต้นการทำงานของคอนสตรัคเตอร์คลาสปัจจุบันได้
- สามารถส่งเป็นอาร์กิวเมนต์ในการเรียกใช้เมธอดได้
- สามารถส่งเป็นอาร์กิวเมนต์ในการเรียกใช้คอนสตรัคเตอร์ได้
- สามารถใช้เพื่อส่งคืนอินสแตนซ์ของคลาสปัจจุบันได้
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
วิธีทำความเข้าใจคีย์เวิร์ดนี้ พร้อมตัวอย่าง

- ชั้น: บัญชีชั้นเรียน
- ตัวแปรอินสแตนซ์: ก และ ข
- ข้อมูลชุดวิธี: เพื่อตั้งค่าสำหรับ a และ b
- วิธีการแสดงข้อมูล: เพื่อแสดงค่าของ a และ b
- วิธีการหลัก: โดยที่เราสร้างอ็อบเจ็กต์สำหรับคลาส Account และเรียกใช้เมธอด set data และ show data
เดินฝ่าความสับสนของคอมไพเลอร์ไปพร้อมกัน
มาลองคอมไพล์และรันโค้ดกันดู
ผลลัพธ์ที่คาดหวังของเราสำหรับ A และ B ควรเริ่มต้นเป็นค่า 2 และ 3 ตามลำดับ
แต่ค่าที่ได้คือ 0 ทำไมจึงเป็นเช่นนั้น? เรามาตรวจสอบกันดู
ในเมธอด Set data นั้น อาร์กิวเมนต์จะถูกประกาศเป็น a และ b ในขณะที่ตัวแปรอินสแตนซ์ก็มีชื่อว่า a และ b เช่นกัน
ระหว่างการประมวลผล คอมไพเลอร์เกิดความสับสนว่า “a” ทางด้านซ้ายของตัวดำเนินการกำหนดค่า เป็นตัวแปรอินสแตนซ์หรือตัวแปรโลคอล ดังนั้นจึงไม่กำหนดค่าให้กับ “a” เมื่อเรียกใช้เมธอด set data
คำตอบคือคำหลักนี้
เพิ่ม “a” และ “b” เข้าไปด้วย Java คำสำคัญนี้ตามด้วยตัวดำเนินการจุด (.)
ในระหว่างการทำงานของโค้ด เมื่ออ็อบเจ็กต์เรียกใช้เมธอด setdata คำว่า this จะถูกแทนที่ด้วยตัวจัดการอ็อบเจ็กต์ "obj" (ดูภาพด้านล่าง)
ตอนนี้คอมไพเลอร์รู้แล้วว่า
- ตัวอักษร “a” ทางด้านซ้ายมือคือตัวแปรอินสแตนซ์
- ในขณะที่ตัวอักษร “a” ทางด้านขวามือเป็นตัวแปรเฉพาะที่
การขอ ตัวแปร เริ่มต้นได้อย่างถูกต้อง และเอาต์พุตที่คาดหวังจะปรากฏขึ้น
วิธีที่คอมไพเลอร์จัดการกับอ็อบเจ็กต์หลายตัว
สมมติว่าคุณเลือกใช้ชื่อที่แตกต่างกันสำหรับตัวแปรอินสแตนซ์และอาร์กิวเมนต์ของเมธอด
แต่คราวนี้ คุณสร้างอ็อบเจ็กต์สองรายการของคลาส โดยแต่ละอ็อบเจ็กต์เรียกใช้เมธอด set data
คอมไพเลอร์จะพิจารณาอย่างไรว่าควรทำงานกับตัวแปรอินสแตนซ์ของอ็อบเจ็กต์ 1 หรืออ็อบเจ็กต์ 2?
ดีที่ คอมไพเลอร์ต่อท้ายโดยปริยาย ตัวแปรอินสแตนซ์ที่มีคีย์เวิร์ด this (ดูภาพด้านล่าง)
เมื่อวัตถุ 1 เรียกใช้เมธอด set data ตัวแปรตัวอย่างจะถูกต่อท้ายด้วยตัวแปรอ้างอิง
ขณะที่ออบเจ็กต์ 2 กำลังเรียกใช้เมธอด set data ตัวแปรอินสแตนซ์ของออบเจ็กต์ 2 ได้รับการแก้ไข
คอมไพเลอร์จะจัดการเรื่องนี้โดยอัตโนมัติ คุณไม่จำเป็นต้องเพิ่มคีย์เวิร์ด `this` อย่างชัดเจน เว้นแต่จะมีสถานการณ์พิเศษที่จำเป็นต้องทำ
ตัวอย่าง: คำหลักนี้ใน Java ด้วยระบบเส้นทาง Code
ตัวอย่าง: เพื่อเรียนรู้วิธีการใช้คีย์เวิร์ดนี้
ขั้นตอน 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 คำถามในการสัมภาษณ์:- คลิกที่นี่











