phương thức tĩnh và khối tĩnh
Các phương thức tĩnh thuộc về lớp và chúng sẽ được tải vào bộ nhớ cùng với lớp, bạn có thể gọi chúng mà không cần tạo một đối tượng. (sử dụng tên lớp làm tham chiếu).
Trong khi khối tĩnh là một khối mã với một từ khóa tĩnh. Nói chung, chúng được sử dụng để khởi tạo các thành viên tĩnh. JVM thực thi các khối tĩnh trước phương thức chính tại thời điểm tải lớp.
Ví dụ
public class Sample { static int num = 50; static { System.out.println("Hello this is a static block"); } public static void demo() { System.out.println("Contents of the static method"); } public static void main(String args[]) { Sample.demo(); } }
Đầu ra
Hello this is a static block Contents of the static method
Hạn chế đối với khối tĩnh và phương thức tĩnh
Phương thức tĩnh
-
Bạn không thể truy cập thành viên không tĩnh (phương thức hoặc, biến) từ ngữ cảnh tĩnh.
-
Điều này và siêu không thể được sử dụng trong ngữ cảnh tĩnh.
-
Phương thức tĩnh chỉ có thể truy cập dữ liệu kiểu tĩnh (biến thể hiện kiểu tĩnh).
-
Bạn không thể ghi đè một phương thức tĩnh. bạn chỉ cần ẩn nó đi.
Khối tĩnh
-
Bạn không thể trả lại bất kỳ thứ gì từ một khối tĩnh.
-
Bạn không thể gọi một khối tĩnh một cách rõ ràng.
-
Nếu ngoại lệ xảy ra trong một khối tĩnh, bạn phải bọc nó trong cặp try-catch. Bạn không thể ném nó.
-
Bạn không thể sử dụng cái này và super từ khóa bên trong một khối tĩnh.
-
Bạn không thể kiểm soát thứ tự thực thi động trong trường hợp khối tĩnh, chúng sẽ được thực thi theo thứ tự khai báo của chúng.