Trong Java, viết các lớp lồng nhau là viết các lớp bên trong các lớp. Kiểu cấu trúc như vậy được gọi là các lớp lồng nhau hoặc các lớp bên trong. Trong bài đăng hôm nay, chúng ta sẽ thảo luận chi tiết về Java Inner Class – lớp lồng nhau trong Java, cùng với các kiểu của chúng được chỉ rõ với sự trợ giúp của các Ví dụ về cú pháp và mã hóa.
Khái niệm về lớp lồng nhau trong Java
Java inner class hoặc lớp lồng nhau trong java là một lớp được khai báo trong lớp hoặc interface khác. Nói cách khác, lớp bên trong là thành viên của lớp cũng tương tự như lớp có thành viên là các biến và phương thức. Trong lớp lồng nhau các lớp thành viên của nó có cách gọi khác là lớp cấp cao nhất hoặc lớp ngoài. Một lớp cấp cao nhất có thể chứa bất kỳ số lượng các lớp bên trong.
Chúng ta dùng inner class để nhóm các lớp và các interface 1 cách logic lại với nhau ở một nơi để giúp cho code dễ đọc và dễ bảo trì hơn. Thêm vào đấy, nó có thể truy tìm toàn bộ các thành viên của lớp bên ngoài (outer class) bao gồm các thành viên dữ liệu private và phương thức.
Nhu cầu sử dụng lớp lồng nhau trong Java
Về căn bản có ba ưu điểm của inner class trong java như sau:
1) Inner class biểu diễn cho một kiểu hơn thế nữa của các mối quan hệ đấy là nó có thể truy cập toàn bộ các thành viên (các thành viên dữ liệu & các phương thức) của lớp ngoài bao gồm cả private.
2) Inner class được dùng để giúp code dễ đọc hơn & dễ bảo trì bởi vì nó nhóm các lớp và các interface 1 cách logic vào trong một nơi.
3) Code được tối ưu hóa: tiết kiệm code hơNhững loại của lớp lồng nhau trong java
Có hai kiểu của các lớp lồng nhau. Lớp lồng nhau non-static và lớp lồng nhau static. Lớp lồng nhau non-static được gọi là inner class.
- Lớp lồng nhau non-static (inner class)
- a)Member inner class
- b)Annomynous inner class
- c)Local inner class
- Lớp lồng nhau Static
Kiểu | Mô tả |
---|---|
Member Inner Class | Một lớp được tạo ra bên trong một lớp và bên ngoài phương thức. |
Anonymous Inner Class | Một lớp được xây dựng để implements interface hoặc extends class. Tên của nó được quyết định bởi trình biên dịch java.. |
Local Inner Class | Một lớp được tạo ra bên trong một phương thức. |
Static Nested Class | Một lớp static được tạo ra bên trong một lớp. |
Nested Interface | Một interface được xây dựng bên trong một lớp hoặc một interface. |
>>> Xem thêm: Tư duy lập trình là gì? Những điều bạn cần biết
Khi Nào Nên Sử Dụng Lớp Lồng & Chức Năng Của Nó?
Dựa trên những gì chúng ta đã làm quen với lớp lồng trên đây, chúng ta đã có đủ trải nghiệm để tổng hợp lại vài chức năng của nó.
- Nếu như bạn có một lớp A chỉ sử dụng đến một lớp B nào đấy. Tức là B không được ai sử dụng đến cả ngoại trừ A thôi. Thì bạn có thể xem xét tổ chức theo cách B sẽ là lớp lồng vào trong lớp A. Ích lợi của điều này thì bạn sẽ xem các ý dưới đây.
- Việc lồng các lớp vào nhau giúp tăng tính gói gém dữ liệu (encapsulation). Chẳng hạn với việc lớp B nằm trong lớp A, thì bạn sẽ khai báo B là private, Lúc đó ngoài A ra không có bất kỳ lớp nào khác có thể biết tới sự hiện hữu của B và các giá trị của nó, có thể nói rằng bạn đã “giấu” B khỏi toàn cầu, ngoại trừ A.
- Ở chiều trái lại. Lớp lồng B có thể truy tìm đến toàn bộ các thành viên (thuộc tính và phương thức) của lớp bao A, ngay đến cả khi các thành viên của A được khai báo là private.
- Tất nhiên, khi lồng các lớp vào nhau như vậy, code của bạn sẽ dễ đọc hơn (vì không phải tìm & mở khá là nhiều lớp), dẫn đến việc bảo trì cũng đơn giản hơn.
Những điểm chính cần nhớ
- Java coi lớp bên trong như một thành viên thông thường của một lớp. Chúng chẳng hạn như các phương thức & các biến được khai báo bên trong một lớp.
- Vì các lớp bên trong là thành viên của lớp bên ngoài, bạn có thể áp dụng bất kỳ quyền sửa đổi truy cập nào như
private
,protected
cho lớp bên trong của bạn, điều không thể có trong các lớp thông thường. - Vì lớp lồng nhau là một thành viên của lớp bên ngoài kèm theo, nên bạn có thể sử dụng
.
ký hiệu dấu chấm để truy xuất lớp lồng và các thành viên của lớp. - Sử dụng lớp lồng nhau sẽ khiến cho code của bạn dễ đọc hơn & cung cấp đóng gói tốt hơn.
- Các lớp lồng nhau không tĩnh (các lớp bên trong) có quyền truy xuất vào các thành viên khác của lớp bên ngoài / lớp kèm theo, ngay cả khi chúng được khai báo là riêng tư.
>>>Xem thêm: Lập trình viên có khó không và những điều cần biết
Kết
Bài đăng trên đã giới thiệu tới bạn các nội dung kiến thức về lớp lồng nhau trong Java. Mong rằng bạn thấy bài đăng này có ích. Tìm hiểu thêm về Java qua các bài viết của bên chúng tôi.
Nhật Minh – Tổng hợp và bổ sung
Nguồn: viettuts.vn, cafedev.vn, gpcoder.com,
Bình luận về chủ đề post