Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Java นี้

วิธีใช้ 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 อย่างผู้เชี่ยวชาญแล้ว