- Tham gia
- 18/09/2016
- Bài viết
- 3,165
Từ khóa final được dùng để:
- Bảo toàn giá trị của Variable
- Làm mất khả năng thừa kế của Class
- Làm mất khả năng ghi đè của Non-static method
Về vị trí: Từ khóa final nằm sau static và access modifier.
Khi một biến có final, người ta còn gọi là constant (hằng số)
Một vài ví dụ
1. Với biến
Trong ảnh trên, mình đã khởi tạo hằng số thoiGian. Vì vậy mà đoạn code sau mình không thể thay đổi giá trị của biến đó được!
Nhưng một ngoại lệ với Constructor
Java không bắt buộc bạn phải khởi tạo giá trị của biến nếu bạn làm điều đó trong Constructor.
Lý do: Cái biến trên là Instance variable, nó thuộc về Object. Khi Object khởi tạo thì sẽ qua Constructor. Khởi tạo trong Constructor và khởi tạo trực tiếp trong biến là giống nhau.
2. Với method
Method có final sẽ ngăn chặn khả năng kế thừa (như ảnh trên)
3. Với Class
Tương tự với Method, Class có final sẽ ngăn khả năng thừa kế
Chú ý về hằng số
Hằng số chỉ ngăn chặn khả năng chỉnh sửa chứ vẫn cho phép các bạn truy cập chúng.
Gỉa sử mình tạo một Object và gán vào một hằng số, thì mình vẫn được thay đổi các Variable bên trong Object đó!
Vậy khi nào dùng final?
Khi cần lưu trữ dữ liệu mang tính tuyệt đối (luôn đúng), không thay đổi được.
Ngoài ra nếu bạn chỉ khởi tạo Object một lần thì hãy đặt chúng vào hằng số hơn là Variable bình thường.
Dùng final sẽ giúp cải thiện hiệu suất! (stackoverflow.com)
- Bảo toàn giá trị của Variable
- Làm mất khả năng thừa kế của Class
- Làm mất khả năng ghi đè của Non-static method
Về vị trí: Từ khóa final nằm sau static và access modifier.
Khi một biến có final, người ta còn gọi là constant (hằng số)
Một vài ví dụ
1. Với biến
Trong ảnh trên, mình đã khởi tạo hằng số thoiGian. Vì vậy mà đoạn code sau mình không thể thay đổi giá trị của biến đó được!
Nhưng một ngoại lệ với Constructor
Java không bắt buộc bạn phải khởi tạo giá trị của biến nếu bạn làm điều đó trong Constructor.
Lý do: Cái biến trên là Instance variable, nó thuộc về Object. Khi Object khởi tạo thì sẽ qua Constructor. Khởi tạo trong Constructor và khởi tạo trực tiếp trong biến là giống nhau.
2. Với method
Method có final sẽ ngăn chặn khả năng kế thừa (như ảnh trên)
3. Với Class
Tương tự với Method, Class có final sẽ ngăn khả năng thừa kế
Chú ý về hằng số
Hằng số chỉ ngăn chặn khả năng chỉnh sửa chứ vẫn cho phép các bạn truy cập chúng.
Gỉa sử mình tạo một Object và gán vào một hằng số, thì mình vẫn được thay đổi các Variable bên trong Object đó!
Vậy khi nào dùng final?
Khi cần lưu trữ dữ liệu mang tính tuyệt đối (luôn đúng), không thay đổi được.
Ngoài ra nếu bạn chỉ khởi tạo Object một lần thì hãy đặt chúng vào hằng số hơn là Variable bình thường.
Dùng final sẽ giúp cải thiện hiệu suất! (stackoverflow.com)

