Điều gì xảy ra khi một thành viên trong a classđược tuyên bố là static..? Các thành viên có thể được truy cập mà không cần khởi tạo class. Do đó làm cho lớp bên ngoài (lớp cấp cao nhất) statickhông có ý nghĩa. Do đó, nó không được phép.
Nhưng bạn có thể đặt các lớp bên trong là tĩnh (Vì nó là thành viên của lớp cấp cao nhất). Sau đó, lớp đó có thể được truy cập mà không cần khởi tạo lớp cấp cao nhất. Hãy xem xét ví dụ sau.
public class A {
public static class B {
}
}
Bây giờ, bên trong một lớp khác C, lớp Bcó thể được truy cập mà không cần tạo một thể hiện của lớp A.
public class C {
A.B ab = new A.B();
}
staticCác lớp học cũng có thể có non-staticthành viên. Chỉ có lớp được tĩnh.
Nhưng nếu statictừ khóa bị xóa khỏi lớp B, nó không thể được truy cập trực tiếp mà không cần tạo một thể hiện của A.
public class C {
A a = new A();
A.B ab = a. new B();
}
Nhưng chúng ta không thể có staticcác thành viên trong một non-staticlớp bên trong.