Static Nested Class (Lớp Nested Tĩnh) trong lập trình Java là một loại Nested Class (lớp lồng) được định nghĩa bên trong một lớp khác và được đánh dấu là static
. Nó tương tự như Member Inner Class, nhưng có một điểm quan trọng là không cần một đối tượng của lớp bên ngoài để tạo đối tượng của Static Nested Class. Static Nested Class được liên kết chặt chẽ với lớp bên ngoài của nó và chỉ có thể truy cập các thành viên tĩnh (static members) của lớp bên ngoài.
Để định nghĩa một Static Nested Class, bạn đặt nó bên trong lớp bên ngoài như một thành viên tĩnh của lớp, bên trong các cặp ngoặc nhọn của lớp bên ngoài và đánh dấu nó là static
. Dưới đây là cú pháp để định nghĩa Static Nested Class:
java
class OuterClass {
// Thành viên tĩnh (static) của lớp bên ngoài
static class StaticNestedClass {
// Thành viên (Member) của Static Nested Class
}
}
Có thể tạo đối tượng của Static Nested Class từ bên ngoài lớp bao ngoài mà không cần tạo một đối tượng của lớp bao ngoài. Từ bên ngoài, bạn chỉ cần sử dụng tên của lớp bao ngoài để tạo đối tượng của Static Nested Class.
Ví dụ:
java
class OuterClass {
private static int x = 10;
static class StaticNestedClass {
void display() {
System.out.println("Value of x: " + x);
}
}
}
public class Main {
public static void main(String[] args) {
// Tạo đối tượng của Static Nested Class
OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();
nested.display();
}
}
Trong ví dụ trên, ta đã tạo một Static Nested Class StaticNestedClass
trong lớp OuterClass
. Sau đó, ta đã tạo một đối tượng StaticNestedClass
từ bên ngoài OuterClass
bằng cách sử dụng cú pháp OuterClass.StaticNestedClass
. Bạn sẽ thấy rằng không cần tạo đối tượng OuterClass
, ta có thể truy cập đến StaticNestedClass
một cách trực tiếp.