Khai báo nào sau đây là khai báo biến lớp?
Trả lời:
Đáp án đúng: B
Biến lớp (class variable) là biến được khai báo với từ khóa `static`. Nó thuộc về lớp chứ không phải một thể hiện cụ thể nào của lớp đó. Biến lớp được chia sẻ giữa tất cả các đối tượng của lớp.
* **A. `final double d;`**: Đây là khai báo một biến instance (biến thể hiện) kiểu `double` và là `final`, nghĩa là giá trị của nó không thể thay đổi sau khi khởi tạo. Nó không phải là biến lớp vì thiếu từ khóa `static`.
* **B. `private static id;`**: Đây là khai báo một biến lớp (class variable) kiểu `id` (kiểu dữ liệu không rõ ràng, nhưng vẫn được xem là khai báo hợp lệ). Nó là `private static`, nghĩa là nó chỉ có thể truy cập từ bên trong lớp và nó được chia sẻ giữa tất cả các đối tượng của lớp. Đáp án này đúng.
* **C. `volatile int sleepTime`**: Đây là khai báo một biến instance (biến thể hiện) kiểu `int` với từ khóa `volatile`. Từ khóa `volatile` đảm bảo rằng biến được đọc từ và ghi vào bộ nhớ chính (main memory) thay vì bộ nhớ cache của CPU, giúp đảm bảo tính nhất quán của dữ liệu trong môi trường đa luồng. Nó không phải là biến lớp vì thiếu từ khóa `static`.
* **D. Không có đáp án đúng**: Vì đáp án B đúng nên đáp án này sai.
Vậy, đáp án đúng là B.