วิธีใช้ Java คำหลักนี้
เมื่อคุณเริ่มเขียนโค้ดใน Java คุณจะสังเกตเห็นคีย์เวิร์ด this
ใช้ในวิธีการหรือตัวสร้าง this
คีย์เวิร์ดหมายถึงอ็อบเจ็กต์ปัจจุบันภายในเมธอดหรือคอนสตรัคเตอร์ และมีการใช้งานที่หลากหลายใน Java
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับ Java คีย์เวิร์ดนี้ รวมถึงวิธีการและเหตุผลที่ใช้ นอกจากนี้ เราจะยกตัวอย่างสองสามตัวอย่างตลอดทั้งบทความเพื่อสาธิตการใช้งานคีย์เวิร์ดนี้
วิธีการและตัวสร้าง Java
เมธอดและคอนสตรัคเตอร์เป็นสองส่วนสำคัญของการเขียนโปรแกรมใน Java
ฟังก์ชันหรือ methods
เนื่องจากถูกเรียกในการเขียนโปรแกรมเชิงวัตถุ เป็นบล็อกของโค้ดที่ทำงานเฉพาะ ตัวอย่างเช่น เมื่อดำเนินการเมธอด อาจพิมพ์เนื้อหาของอาร์เรย์ไปยังคอนโซล หรืออำนวยความสะดวกในการป้อนข้อมูลของผู้ใช้ในโปรแกรม
นี่คือตัวอย่างวิธีการใน Java ที่พิมพ์ It’s Monday!
ไปที่คอนโซล:
public class PrintMessage { public static void main(String[] args) { System.out.println("It's Monday!"); } }
เมื่อเรารันโค้ดของเรา เอาต์พุตต่อไปนี้จะถูกส่งกลับไปยังคอนโซล:It’s Monday!
ตัวสร้างจะคล้ายกับเมธอดและถูกเรียกใช้เมื่ออ็อบเจ็กต์สร้างอินสแตนซ์หรือสร้างในโปรแกรม นี่คือตัวอย่างคอนสตรัคเตอร์ที่ตั้งค่าตัวแปรอินสแตนซ์ที่เรียกว่า day
ถึง Monday
เมื่ออินสแตนซ์ของวันจันทร์สร้างอินสแตนซ์และพิมพ์ It’s
ตามด้วยวันในสัปดาห์ไปยังคอนโซล:
class Monday { private Monday() { day = "Monday"; } public static void main(String[] args) { Monday day_of_the_week = new Monday(); System.out.println("It's " + day_of_the_week.day); } }
รหัสของเราส่งคืน:It’s Monday!
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับคอนสตรัคเตอร์ คุณสามารถอ่านคู่มือฉบับสมบูรณ์ของเราเกี่ยวกับคอนสตรัคเตอร์ Java ตอนนี้เราได้สำรวจพื้นฐานของเมธอดและคอนสตรัคเตอร์ของ Java แล้ว เรามาเริ่มพูดถึงthis
กัน คีย์เวิร์ดและวิธีใช้งานในโค้ดของคุณ
Java คำหลักนี้
ใน Java this
คีย์เวิร์ดหมายถึงอ็อบเจกต์ปัจจุบันภายในเมธอดหรือคอนสตรัคเตอร์
เพื่อแสดงให้เห็นสิ่งนี้ ลองใช้ตัวสร้างตัวอย่างของเราจากด้านบนที่พิมพ์วันในสัปดาห์ไปที่คอนโซล ในตัวอย่างด้านล่าง เราได้พิมพ์ค่าของ this
และค่าของ Monday()
วัตถุที่เราสร้างอินสแตนซ์:
class Monday { private String day; private Monday() { day = "Monday"; System.out.println(this); } public static void main(String[] args) { Monday day_of_the_week = new Monday(); System.out.println("It's " + day_of_the_week.day); System.out.println(day_of_the_week); } }
รหัสของเราส่งคืนดังต่อไปนี้:
Main@d716361 It's Monday Main@d716361
บรรทัดแรกในผลลัพธ์ของเราคือค่าของ this
ซึ่งพิมพ์ไปที่คอนโซลเมื่อ Monday()
วัตถุถูกสร้างอินสแตนซ์ บรรทัดที่สองในผลลัพธ์ของเราคือการพิมพ์ It’s
ตามด้วยค่าของ day
ใน day_of_the_week
วัตถุที่เราประกาศ สุดท้าย เราพิมพ์ค่าของ day_of_the_week
วัตถุ
อย่างที่คุณเห็น ค่าของ this
และ day_of_the_week
วัตถุเหมือนกัน ซึ่งหมายความว่า this
คีย์เวิร์ดหมายถึงอ็อบเจกต์ปัจจุบันภายในเมธอดหรือคอนสตรัคเตอร์
Java กรณีการใช้งานนี้
มีสองสถานการณ์หลักที่การใช้คำหลักนี้มีค่า เหล่านี้คือ:
- ใช้สิ่งนี้เพื่อแก้ความกำกวมชื่อตัวแปร
- ส่งเป็นอาร์กิวเมนต์
รูปแบบของคีย์เวิร์ดนี้ this()
, ยังใช้เมื่อโอเวอร์โหลดคอนสตรัคเตอร์ อย่างไรก็ตาม นี่เป็นการใช้งานขั้นสูงกว่านี้ ดังนั้นเราจะไม่พูดถึงมันในบทความนี้
ใช้สิ่งนี้เพื่อแก้ความกำกวมของชื่อตัวแปร
ตัวแปรตั้งแต่สองตัวขึ้นไปไม่สามารถมีชื่อเดียวกันภายในขอบเขตใน Java ซึ่งหมายความว่าหากคุณพยายามประกาศตัวแปรสองตัวและใช้ชื่อเดียวกัน ตรรกะของโปรแกรมของคุณจะได้รับผลกระทบ
อย่างไรก็ตาม เราสามารถหลีกเลี่ยงข้อจำกัดนี้ได้โดยใช้ this
กระบวนการ. this
ช่วยให้เราสามารถกำหนดตัวแปรเฉพาะให้กับวัตถุ ซึ่งช่วยให้เราสามารถเก็บทั้งค่าของตัวแปรในวัตถุและค่าของตัวแปรเริ่มต้นได้
มาดูตัวอย่างเพื่ออธิบายวิธีการทำงานกัน สมมติว่าเรากำลังสร้างโปรแกรมที่ติดตามชื่อของนักเรียนที่กำลังถูกเพิ่มเข้าในรางวัลเกียรติยศในชั้นประถมศึกษาปีที่ 5 แอปพลิเคชันนี้ควรพิมพ์ชื่อนักเรียนไปที่คอนโซล
นี่คือรหัสที่เราจะใช้สร้างแอปพลิเคชันนี้:
class HonorRoll { String studentName; HonorRoll(String studentName) { this.studentName = studentName; } public static void main(String[] args) { HonorRoll alex = new HonorRoll("Alex"); System.out.println("New honor roll inductee: " + alex.studentName); } }
เมื่อเราเรียกใช้โปรแกรม ข้อมูลต่อไปนี้จะถูกส่งกลับ:
New honor roll inductee: Alex
ในตัวอย่างนี้ เราใช้ this
เพื่อติดตามชื่อนักเรียนใน HonorRoll
กระบวนการ. เราใช้โค้ดบรรทัดต่อไปนี้เพื่อกำหนดค่า studentName
พารามิเตอร์ตัวสร้าง (ซึ่งก็คือ Alex
ในตัวอย่างข้างต้น) ให้กับตัวแปร this.studentName
. หากเราไม่ทำเช่นนี้ ข้อมูลต่อไปนี้จะถูกส่งคืน:
New honor roll inductee: null
ทั้งนี้เป็นเพราะเพื่อให้ HonorRoll
. ของเรา วิธีเก็บชื่อนักเรียน ต้องใช้ this
เพื่อลบความคลุมเครือออกจากคอมไพเลอร์ Java ดังนั้น หากเราลบคำว่า this
จากโค้ดของเรา เราจะได้ค่า null
ส่งสิ่งนี้เป็นข้อโต้แย้ง
this
คีย์เวิร์ดมักใช้เพื่อส่งผ่านอ็อบเจ็กต์ปัจจุบันในเมธอดหรือคอนสตรัคเตอร์ไปยังเมธอดอื่น
สมมติว่าเรากำลังสร้างแอปพลิเคชันที่ติดตามจำนวนเมล็ดกาแฟที่ร้านกาแฟในท้องถิ่นมีในสต็อก แอปพลิเคชั่นนี้ควรอนุญาตให้เจ้าของร้านกาแฟเพิ่มจำนวนถุงคงเหลือในสต็อกได้ ซึ่งจะใช้เมื่อมีสต๊อกเพิ่มขึ้น นี่คือรหัสที่เราสามารถใช้สร้างแอปพลิเคชันนี้:
class AddStock { int stockToAdd; int stockTotal; AddStock(int stockToAdd, int stockTotal) { this.stockToAdd = stockToAdd; this.stockTotal = stockTotal; System.out.println("Current stock: " + this.stockTotal); calculateNewStock(this); System.out.println("New stock: " + this.stockTotal); } void calculateNewStock(AddStock s) { s.stockTotal += s.stockToAdd; } } class Main { public static void main(String[] args) { AddStock newStockValue = new AddStock(10, 9); } }
รหัสของเราส่งคืน:
Current stock: 9 New stock: 19
มาทำลายรหัสกันเถอะ ในโค้ดของเรา เราได้กำหนดคลาสที่ชื่อว่า AddStock
. คลาสนี้มีเมธอดที่ใช้สองค่า—stockToAdd
และ stockTotal
—และเรียกใช้ calculateNewStock()
วิธีการคำนวณจำนวนกาแฟที่ร้านกาแฟมีในสต็อก
จากนั้นเราใช้ Main()
เพื่อเริ่มต้นอินสแตนซ์ของคลาส AddStock และเพิ่มค่าสองค่าด้วยกัน:10 และ 9 หลังจากที่โปรแกรมของเราดำเนินการ โค้ดของเราจะเพิ่มค่าสองค่าที่เราระบุ ได้แก่ สต็อคที่จะเพิ่มและยอดรวมของสต็อคปัจจุบันตามลำดับ และพิมพ์ทั้งสองค่า สต็อกปัจจุบันและระดับสต็อกที่แก้ไขไปยังคอนโซล
ในตัวอย่างนี้ this
คำหลักถูกใช้เป็นอาร์กิวเมนต์เมื่อเราเรียก calculateNewStock()
กระบวนการ. ซึ่งช่วยให้เราสามารถส่งต่อตัวแปรที่เรากำลังทำงานด้วยในคลาส AddStock ไปยัง calculateNewStock()
ซึ่งต้องใช้ตัวแปรเหล่านั้นในการคำนวณระดับสต็อกที่แก้ไข
บทสรุป
คีย์เวิร์ดนี้ Java อ้างถึงอ็อบเจ็กต์ปัจจุบันภายในเมธอดหรือคอนสตรัคเตอร์ ใน Java คำหลักนี้มีการใช้งานหลักสองประการ:เพื่อแก้ความกำกวมชื่อตัวแปร และเพื่อส่งผ่านสิ่งนี้เป็นอาร์กิวเมนต์
กวดวิชานี้อภิปรายโดยมีการอ้างอิงถึงตัวอย่าง วิธีใช้คีย์เวิร์ดนี้ของ Java ในบริบททั้งสาม ตอนนี้คุณมีความรู้ที่จำเป็นในการเริ่มใช้คีย์เวิร์ดนี้ของ Java อย่างผู้เชี่ยวชาญแล้ว