Inner Class là gì?
Inner Class là một khái niệm chỉ về một lớp được khai báo bên trong lớp khác. Chúng ta sử dụng các Inner Class để nhóm các lớp và các Interface có quan hệ với nhau vào một vị trí để tăng tính đọc và tính duy trì.
Thêm vào đó, bạn có thể truy cập tất cả thành viên của Outer Class (lớp mà bao Inner Class), đó là: các thành viên dữ liệu và các phương thức private.
Cú pháp của Inner Class
class Outer_class{ // Day la phan code class nner_class{ // Day la phan code } }
Lợi thế khi sử dụng Inner Class trong Java
Sử dụng Inner Class đem lại ba lợi thế chính là:
- Inner Class biểu diễn một kiểu quan hệ đặc biệt, đó là: nó có thể truy cập tất cả các thành viên (thành viên dữ liệu và các phương thức) của Outer Class, bao gồm cả các thành viên được khai báo là private.
- Inner Class được sử dụng để phát triển tính đọc và tính dễ dàng duy trì của code, bởi vì khi sử dụng Inner Class tức là bạn đã nhóm các lớp và các Interface có mối quan hệ với nhau vào một nơi.
- Giúp tối ưu hóa code, tức là bạn có thể viết ít code hơn nhưng có thể mang lại hiệu quả tương tự.
Điểm khác nhau giữa Inner Class và Nested Class trong Java
Inner Class là một phần của Nested Class. Trong Nested Class, có hai loại là non-static và static. Các Nested Class mà không phải ở dạng static thì đó là Inner Class. Trong đó, loại Non-static Nested Class bao gồm:
- Member Inner Class: là một lớp được tạo bên trong lớp và bên ngoài phương thức.
- Anonymous Inner Class: là một lớp được tạo để triển khai (kế thừa) Interface hoặc kế thừa lớp. Tên của nó được quyết định bởi Compiler.
- Local Inner Class: Một lớp được tạo bên trong phương thức.
Loại static Nested Class: một lớp static được tạo bên trong một lớp.
Nested Interface: là một Interface được tạo bên trong một lớp hoặc một Interface.