this

this เป็นเรฟเฟอร์เรนซ์ที่ชี้หาตัวเอง หมายถึงตัววัตถุที่ใช้คำนี้

this ใช้เพื่อแก้ปัญหาชื่อซ้ำกัน เช่น ในกรณีที่คอนสตรัคเตอร์ที่รับพารามิเตอร์เป็นชื่อเดียวกับแอททริบิวท์ ในคอนสตรัคเตอร์ Person(String, int) การเขียน this.name หมายถึงแอททริบิวท์ ส่วน name หมายถึงพารามิเตอร์

public class Person {
    private String name;
    private int salary;

    public Person(String name, int salary) {
        this.name = name;
        this.salary = salary;
    }
}

อีกตัวอย่างหนึ่้งของการใช้ this ก็คือใช้เพื่อส่งเรฟเฟอร์เรนซ์ของตัวเองไปให้กับเมธอดอื่น ให้ดูเมธอด print() ของคลาส Person และเมธอด go() ของคลาส A

class A {
    static void go(Person p) {
        System.out.println(p.getName());
    }
}

public class Person {
    private String name;
    private int salary;

    public Person(String name, int salary) {
        this.name = name;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public void print() {
        A.go(this);
    }

    public static void main(String[] args) {
        Person p = new Person("Somchai", 12000);
        p.print();
    }
}

เขียนโปรแกรม Java เบื้องต้น

หนังสือ Java Keywords

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s