Từ khóa final trong Java là một trong những khái niệm quan trọng trong khi lập trình. Do đó, trong bài viết này, chúng ta sẽ cùng tìm hiểu về các biến, phương thức và lớp sử dụng với từ khóa final của Java cùng với các ví dụ dẫn chứng.
Từ khóa final
Trong Java, từ khóa final được sử dụng để biểu thị các hằng số. Nó có thể được sử dụng với các biến, phương thức và lớp.
Khi bất kỳ thực thể nào (biến, phương thức hoặc lớp) được khai báo với từ khóa final, nó chỉ có thể được gán với một giá trị bất kỳ trong một lần duy nhất.
- Biến được khai báo là final không thể được khởi tạo lại bằng một giá trị khác.
- Phương thức final sẽ không thể bị ghi đè.
- Lớp class được khai báo là final không thể được thừa kế.
1. Biến được khai báo với final
Trong Java, chúng ta không thể thay đổi giá trị của một biến final.
Ví dụ:
class Main { public static void main(String[] args) { final int SO_NGUYEN = 421; SO_NGUYEN = 420; System.out.println(SO_NGUYEN); } }
Trong đoạn mã trên, trình biên dịch sẽ thông báo lỗi bởi biến SO_NGUYEN được khai báo với từ khóa là final và nó đã được khởi tạo với giá trị ban đầu là 421.
Chú ý: Nên sử dụng chữ in hoa để khai báo các biến final trong Java.
2. Phương thức được khai báo với final
Trong Java, lớp con không thể ghi đè phương thức được sử dụng với từ khóa final.
Ví dụ:
class sinh_vien { public final void in_thong_tin() { System.out.println("Day la sinh vien!"); } } class Main extends sinh_vien { public final void in_thong_tin() { System.out.println("Day khong phai la sinh vien!"); } public static void main(String[] args) { Main doi_tuong = new Main(); doi_tuong.in_thong_tin(); } }
Trong đoạn mã trên, trình biên dịch sẽ thông báo lỗi bởi trong lớp sinh_vien đã khai báo phương thức in_thong_tin() là final, do đó, trong lớp Main kế thừa lớp sinh_vien, ta sẽ không thể ghi đè phương thức in_thong_tin() đã khai báo là final trong lớp sinh_vien.
3. Lớp (Class) sử dụng với từ khóa final
Trong Java, lớp được khai báo với final sẽ không thể được kế thừa bởi một lớp khác.
Ví dụ:
final class sinh_vien { public void in_thong_tin() { System.out.println("Day la sinh vien!"); } } class Main extends sinh_vien { public void in_thong_tin() { System.out.println("Day khong phai la sinh vien!"); } public static void main(String[] args) { Main doi_tuong = new Main(); doi_tuong.in_thong_tin(); } }
Đoạn mã trên sẽ bị thông báo lỗi là lớp Main không thể kế thừa lớp sinh_vien bởi lớp sinh_vien đã được khai báo là final class.
Trên đây là khái niệm và ví dụ cơ bản về từ khóa final trong Java. Hy vọng mọi người có thể áp dụng vào trong chương trình của mình. Mọi người hãy tiếp tục theo dõi các bài tiếp theo và cập nhật các bài mới nhất trên tek4 nhé!
P/s: Cảm ơn mọi người!