นี่เป็นตัวชี้โดยนัยถึงตัวมันเอง พูดง่ายๆ ว่าวัตถุใดเรียกใช้เมธอดซึ่งมีตำแหน่งนี้อยู่ จากนั้นนี่คือวัตถุนั้น
โค้ดตัวอย่าง: TestThis_1.java
คัดลอกรหัสรหัสดังต่อไปนี้:
/* คำถาม: นี่คืออะไร
* ผลลัพธ์ที่ได้:
* A@4e44ac6a
-
TestThis_1 ชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
Aa = A ใหม่();
System.out.println(aa.f()); //aa.f() ส่งคืนการอ้างอิง (ตัวชี้) ของวัตถุ aa
-
-
คลาสเอ {
สาธารณะ A f() {
ส่งคืนสิ่งนี้ // ส่งคืนการอ้างอิงไปยังวัตถุคลาส A ของวัตถุที่เรียกใช้เมธอด f ()
-
-
การใช้งานทั่วไปของสิ่งนี้
1. แยกแยะตัวแปรที่มีชื่อเดียวกัน
โค้ดตัวอย่าง: TestThis_2.java
คัดลอกรหัสรหัสดังต่อไปนี้:
/* การใช้งานทั่วไปของ 1 นี้: แยกแยะตัวแปรที่มีชื่อเดียวกัน
* ผลลัพธ์ที่ได้:
* นี่ ฉัน = 1
* ผม = 33
-
TestThis_2 ชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
Aaa = A ใหม่(33);
-
-
คลาสเอ {
public int i = 1; //นี่คือตัวแปรสมาชิก
/*หมายเหตุ: โดยทั่วไปไม่ได้เขียนแบบนี้ Constructor มีไว้เพื่อการเริ่มต้นเป็นหลัก และเขียนแบบนี้เพื่อความสะดวกในการทำความเข้าใจเป็นหลัก*/
public A(int i) { //นี่คือตัวแปรภายในเครื่อง
System.out.printf("this. i = %d/n", this.i); //this.i อ้างถึงตัวแปรสมาชิก i ของอ็อบเจ็กต์นั้นเอง
System.out.printf("i = %d/n", i); //i นี่คือตัวแปรภายในเครื่อง i
-
-
2. การเรียกร่วมกันระหว่างตัวสร้าง
โค้ดตัวอย่าง: TestThis_3.java
คัดลอกรหัสรหัสดังต่อไปนี้:
/* การใช้งานทั่วไปของ 2 นี้: เรียกกันในตัวสร้าง */
TestThis_3 ชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
-
-
คลาสเอ {
ฉัน, เจ, เค;
สาธารณะ A (int i) {
นี่.i = ฉัน;
-
สาธารณะ A (int i, int j) {
/* i = 3; error หากไม่ได้ใส่เครื่องหมายความคิดเห็น จะมีการรายงานข้อผิดพลาด: เมื่อเรียก Constructor ด้วย this(...) จะสามารถวางไว้ในประโยคแรกเท่านั้น
* TestThis_3.java:20: ข้อผิดพลาด: การเรียกใช้สิ่งนี้จะต้องเป็นคำสั่งแรกในตัวสร้าง
* นี่(ฉัน);
-
*1 ข้อผิดพลาด
-
นี้(ฉัน);
นี่.j = เจ;
-
สาธารณะ A (int i, int j, int k) {
นี้(ฉัน, เจ);
นี่.k = k;
-
-
สิ่งที่ควรทราบ
วิธีการแก้ไขโดยสแตติกไม่มีตัวชี้นี้ เนื่องจากวิธีการที่แก้ไขโดย static เป็นแบบสาธารณะ จึงไม่สามารถบอกได้ว่าเป็นของวัตถุใดโดยเฉพาะ
โค้ดตัวอย่าง: TestThis_4.java
คัดลอกรหัสรหัสดังต่อไปนี้:
/*ไม่มีตัวชี้นี้อยู่ในวิธีการคงที่*/
TestThis_4 ชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
-
-
คลาสเอ {
คงที่ A f() {
คืนสิ่งนี้;
/* ข้อความแสดงข้อผิดพลาด: TestThis_4.java:10: ข้อผิดพลาด: ตัวแปรที่ไม่คงที่ซึ่งไม่สามารถอ้างอิงได้จากบริบทแบบคงที่
* คืนสิ่งนี้;
-
*1 ข้อผิดพลาด
-
-
-