Xin chào hôm nay bạn sẽ được tìm hiểu về từ khóa final trong Java. Với final có thể áp dụng cho lớp (Class), phương thức (Method), biến (Variables). Vậy thì cụ thể thằng final này dùng để làm gì và dùng nó như thế nào? Mời bài đọc tiếp bài sau đây.

Từ khóa Final trong Java là gì?

Final tạm hiểu là ngăn chặn việc sửa đổi dùng cho lớp, phương thức và biến.

Trong lập trình hướng đối tượng không phải tất cả dữ liệu đều được chia sẻ. Những thông tin cần bảo mật sẽ phải che giấu để đảm bảo an toàn.

Biến final trong Java

Biến có từ khoá final được hiểu là một hằng số. Điều đó khiến chúng ta không thể thay đổi giá trị của các biến final sau khi khởi tạo.

Hãy chạy ví dụ sau:

public class Test {
    
    final int numberOne = 10;
    public static void main(String[] args) {
        Test test = new Test();
        test.numberOne = 15; // compile error
        System.out.println(test.numberOne);
    }
}

bien-final-java

Trong ví dụ trên mình đã khai báo một biến numberOne với giá trị là 10, sau đó truy cập vào để cố gắng sửa đổi giá trị. Nhưng final đã chặn lại việc đó. Gây nên lỗi trong JVM.

Phương thức final trong Java

Lớp con có thể kế thừa và sử dụng phương thức nhưng không thể ghi đè (override) lên được.

Tạo ra một file là Test.java

public class Test {
    
    final void read()
      {
        System.out.println("Tôi đang đọc sách");
      }
}

Tiếp theo tạo file extendsTest.Java

public class extendsTest extends Test {

      void read()
      {
        System.out.println("Đọc cái gì vậy?");
      }

      public static void main(String args[]) {
        extendsTest object= new extendsTest();
        object.read();
      }


}

phuong-thuc-final-java

Với ví dụ trên mình đã sử dụng extendsTest để kế thừa Test. Và cố gắng ghi đè (Overriding) nhưng hoàn toàn thất bại. Do từ khóa final đã chặn ghi đè. Để xác thực bạn hãy xóa final đi xem lỗi có còn nữa không.

Lớp final trong Java

Một lớp khi khai báo với từ khóa final sẽ không thể kế thừa được.

Hãy chạy ví dụ sau:

Test.java

final class Test{
    
    String exam = "Đây là một ví dụ về Class Final";
    
    void display() {
        System.out.println(exam);
    }
    
}

extendsTest.java

public class extendsTest extends Test{
    
    public static void main(String[] args) {
        
        extendsTest demo = new extendsTest();
        demo.display();
    }
}

Để không lỗi nữa bạn hãy xóa final đi.

Trên đây chúng ta đã cùng nhau điểm qua về Class, Method và biến sử dụng từ khóa Final trong Java. Bạn có thể final có thú vị không? Nếu thấy hay hãy ghi nhớ và ghi chép lại để lập trình Java tốt hơn nhé.

Cùng chủ đề

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *