Java final

Giới thiệu về Java Final

Trong ngôn ngữ lập trình Java, từ khóa final được sử dụng để đánh dấu rằng một biến, phương thức hoặc lớp không thể bị thay đổi. Điều này có nghĩa là khi bạn định nghĩa một thành phần với từ khóa final, bạn không thể thay đổi giá trị của biến, ghi đè phương thức hoặc kế thừa lớp đó.

Các thành phần của Java Final

1. Biến Final

Khi bạn khai báo một biến với từ khóa final, biến đó trở thành hằng và không thể thay đổi giá trị sau khi đã được gán.

final int x = 10;
// x = 20; // Điều này sẽ gây lỗi biên dịch

2. Phương thức Final

Phương thức được đánh dấu bằng từ khóa final không thể bị ghi đè trong lớp con. Điều này cho phép bảo vệ chức năng của phương thức và tránh việc thay đổi hành vi của nó.

class Parent {
    final void display() {
        System.out.println("This is a final method.");
    }
}

class Child extends Parent {
    void display() { // Lỗi: không thể ghi đè phương thức final
        System.out.println("Trying to override.");
    }
}

3. Lớp Final

Một lớp được khai báo với từ khóa final không thể được kế thừa bởi lớp khác. Điều này có thể được sử dụng để ngăn chặn việc mở rộng một lớp không mong muốn.

final class FinalClass {
    // Nội dung của lớp
}

// class SubClass extends FinalClass { // Lỗi: không thể kế thừa lớp final
// }

Các tình huống sử dụng

Các trường hợp sử dụng thông dụng của từ khóa final bao gồm:

  • Bảo vệ các giá trị không thay đổi, như hằng số.
  • Đảm bảo tính không thay đổi cho các phương thức quan trọng.
  • Ngăn chặn kế thừa cho các lớp mà bạn không muốn bị mở rộng.

Kết luận

Từ khóa final trong Java rất hữu ích để kiểm soát tính không thay đổi của biến, phương thức và lớp. Sử dụng final đúng cách giúp code của bạn trở nên an toàn và dễ hiểu hơn.