Biến và hàm class hay còn gọi là static được sử dụng chung cho mọi đối tượng tạo từ class đó.
Khi bạn khai báo một biến là static, thì biến đó được gọi là biến tĩnh, hay biến static.
Biến static có thể được sử dụng để tham chiếu thuộc tính chung của tất cả đối tượng (mà không là duy nhất cho mỗi đối tượng), ví dụ như tên công ty của nhân viên, tên trường học của các sinh viên, …
Tìm hiểu vấn đề xảy ra khi không có biến static
class Student{ int rollno; String name; String college="BachKhoa"; }
Giả sử có 500 sinh viên trong trường đại học, bây giờ instance của các thành viên dữ liệu sẽ lấy bộ nhớ mỗi khi đối tượng được tạo. Tất cả sinh viên có rollno và name duy nhất vì thế instance của thành viên dữ liệu là tốt. Ở đây, college là thuộc tính chung của tất cả đối tượng. Nếu chúng ta tạo nó là static, thì trường này sẽ chỉ lấy bộ nhớ một lần.
Ghi chú: Thuộc tính static trong Java được chia sẻ tới tất cả đối tượng.
Phương thức static trong Java
Nếu bạn áp dụng từ khóa static với bất cứ phương thức nào, thì phương thức đó được gọi là phương thức static.
- Một phương thức static thuộc lớp chứ không phải đối tượng của lớp.
- Một phương thức static có thể được triệu hồi mà không cần tạo một instance của một lớp.
- Phương thức static có thể truy cập thành viên dữ liệu static và có thể thay đổi giá trị của nó.
- Có hai hạn chế chính cho phương thức static. Đó là:
- Phương thức static không thể sử dụng thành viên dữ liệu non-static hoặc gọi trực tiếp phương thức non-static.
- Từ khóa this và super không thể được sử dụng trong ngữ cảnh static.
class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } }
Chạy chương trình trên sẽ cho kết quả là Compile Time Error.Câu hỏi: Tại sao phương thức main trong Java là static?Bởi vì đối tượng là không cần thiết để gọi phương thức static nếu nó là phương thức non-static, JVM đầu tiên tạo đối tượng và sau đó gọi phương thức main() mà có thể gây ra vấn đề về cấp phát bộ nhớ bộ nhớ phụ.
Nhận xét
Đăng nhận xét