Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Từ khóa this có thể truy cập static member không?

KHÔNG

this tham chiếu đến instance hiện tại (object). static member thuộc về class, không thuộc instance nào. Do đó this.staticField hoặc this.staticMethod() là không hợp lệ (compile error).

Ví dụ truy cập static đúng cách


public class StaticAccessDemo {
    static int a = 50;
    static int b;

    static void show() {
        System.out.println("Trong show()");
        b = a + 5; // Truy cập trực tiếp tên biến/static method
    }

    public static void main(String[] args) {
        show(); // Gọi static method qua class hoặc trực tiếp
        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }
}

Kết quả

Trong show()
a = 50
b = 55

Lưu ý: Dù có thể viết instance.staticMember (compiler cho phép nhưng warning), nhưng không bao giờ viết this.staticMember trong instance method. Luôn dùng ClassName.staticMember.