นี่คือคำหลักใน Java ที่แสดงถึงวัตถุ สิ่งนี้สามารถปรากฏในวิธีการอินสแตนซ์และตัวสร้าง แต่ไม่ใช่ในวิธีการเรียน
ใช้สิ่งนี้ในตัวสร้าง
เมื่อคีย์เวิร์ดนี้ปรากฏใน Constructor ของคลาส คีย์เวิร์ดนี้แสดงถึงอ็อบเจ็กต์ที่สร้างขึ้นโดยใช้ Constructor นั้น
ตัวอย่างเช่น:
publicclassPeople{intleg,hand;Stringname;People(Strings){name=s;this.init();//This. สามารถละเว้นได้ นั่นคือ เขียนเป็น init();}voidinit(){leg=2;hand =2;System .out.println(name+have+hand+hand+1eg+leg);}publicstaticvoidmain(Stringargs[]){Peopleboshi=newPeople(Bush);}}
การใช้สิ่งนี้ในวิธีการตัวอย่าง
วิธีการอินสแตนซ์สามารถเรียกผ่านวัตถุเท่านั้น ไม่สามารถเรียกผ่านชื่อคลาส เมื่อคำสำคัญนี้ปรากฏในวิธีการอินสแตนซ์ คำสำคัญนี้แสดงถึงวัตถุปัจจุบันที่กำลังเรียกใช้วิธีการนั้น
วิธีการอินสแตนซ์สามารถดำเนินการตัวแปรสมาชิกของคลาส เมื่อตัวแปรสมาชิกอินสแตนซ์ปรากฏในวิธีการเช่น รูปแบบทั่วไปคือ:
ตัวแปร this.member;
เมื่อตัวแปรสมาชิกแบบคงที่ปรากฏในวิธีการอินสแตนซ์ รูปแบบทั่วไปจะเป็น:
ชื่อคลาสตัวแปรสมาชิก
ตัวอย่างเช่น:
classA{intx;staticinty;voida(){this.x=10;Ay=20;}}
สิ่งนี้ปรากฏในวิธีการตัวอย่าง a ในคลาส A ซึ่งแสดงถึงวัตถุปัจจุบันโดยใช้ a ดังนั้น "this.x" จึงแสดงถึงตัวแปร x ของวัตถุปัจจุบัน เมื่อวัตถุเรียกวิธีการ a 10 จะถูกกำหนดให้กับตัวแปรของวัตถุ .x. เมื่อออบเจ็กต์เรียกใช้เมธอด ตัวแปรสมาชิกอินสแตนซ์ในวิธีการอ้างอิงถึงตัวแปรสมาชิกอินสแตนซ์ที่กำหนดให้กับออบเจ็กต์ และตัวแปรคงที่จะถูกแชร์กับออบเจ็กต์อื่น ดังนั้นภายใต้สถานการณ์ปกติ คุณสามารถละเว้น "this" หน้าชื่อตัวแปรสมาชิกอินสแตนซ์และ "ชื่อคลาส" ได้
ตัวอย่างเช่น:
classA{intx;staticinty;voida(){x=10;//ละเว้น this.y=20;//ละเว้นชื่อคลาส}}
สังเกต:
เมื่อชื่อของตัวแปรสมาชิกอินสแตนซ์เหมือนกับชื่อของตัวแปรในเครื่อง จะไม่สามารถละเว้น "นี่" หรือ "ชื่อคลาส" ได้
วิธีการอินสแตนซ์ของชั้นเรียนสามารถเรียกวิธีการอื่น ๆ ของชั้นเรียนได้ รูปแบบทั่วไปสำหรับการเรียกวิธีการอินสแตนซ์คือ:
นี้.วิธีการ;
รูปแบบทั่วไปสำหรับการเรียกเมธอดคลาสคือ:
classname.method;
ตัวอย่างเช่น:
classB{voidb(){this.c();Bd();}voidc(){System.out.println(hi);}staticvoidd(){System.out.println(ตกลง);}}
สิ่งนี้ปรากฏในเมธอด b ในคลาส B และนี่แสดงถึงอ็อบเจ็กต์ปัจจุบันที่เรียกเมธอด b ดังนั้น this.c() ในเนื้อความของเมธอดของเมธอด b คืออ็อบเจ็กต์ปัจจุบันที่เรียกเมธอด c นั่นคือ การเรียกเมธอดในบางค่า วัตถุ ในกระบวนการของ b วิธีการ c จะถูกเรียกอีกครั้ง เนื่องจากความสัมพันธ์เชิงตรรกะนี้มีความชัดเจนมาก เมื่อวิธีการหนึ่งเรียกวิธีการอื่น คุณสามารถละเว้น "this" หรือ "ชื่อคลาส" ได้
ตัวอย่างเช่น:
classB{voidb(){c();//ละเว้น this.d();//ละเว้นชื่อคลาส}voidc(){System.out.println(hi);}staticvoidd(){System.out.println ( ตกลง);}}
สังเกต:
สิ่งนี้ไม่สามารถปรากฏในวิธีการเรียนได้เนื่องจากวิธีการเรียนสามารถเรียกได้โดยตรงผ่านชื่อคลาส และยังไม่มีวัตถุใดเกิดขึ้นเลย