× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Lớp lồng nhau trong Java - 4 loại lớp lồng nhau bạn cần nắm rõ

22/10/2021 13:33

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òn được gọi là các lớp lồng nhau hoặc các lớp bên trong. Trong bài viết 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 giải thích 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 gọi 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.

lop long nhau trong java

Chúng ta sử dụng inner class để nhóm các lớp và các interface một 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 đó, nó có thể truy cập tất cả 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.

>>> Đọc thêm: Tệp Java Jar - Cách tạo tệp của riêng bạn trong Java

 

Nhu cầu sử dụng lớp lồng nhau trong Java

Về cơ 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 đặc biệt của mối quan hệ đó là nó có thể truy cập tất cả các thành viên (các thành viên dữ liệu và các phương thức) của lớp ngoài bao gồm cả private.

2) Inner class được sử dụng để giúp code dễ đọc hơn và dễ bảo trì bởi vì nó nhóm các lớp và các interface một cách logic vào trong một nơi.

3) Code được tối ưu hóa: tiết kiệm code hơn.

>>> Đọc thêm: Khóa học lập trình Java

Các kiểu lớp lồng nhau trong Java

1. Nested Inner Class

Lớp bên trong lồng nhau là lớp bên trong có thể truy cập các biến thể hiện khác của lớp bên ngoài, ngay cả khi chúng được khai báo là private. Chúng ta có thể sử dụng bất kỳ công cụ sửa đổi quyền truy cập nào cho lớp bên trong lồng nhau - công khai, riêng tư, bảo vệ hoặc mặc định.

2. Phương thức Local Inner class

Phương thức Local Inner Class cho phép chúng ta khai báo một lớp bên trong một thân phương thức sẽ thuộc kiểu cục bộ . Phạm vi của lớp bên trong bị hạn chế trong phương thức, tương tự như các biến cục bộ. Chúng ta chỉ có thể khởi tạo một lớp bên trong cục bộ bên trong phương thức mà lớp bên trong được định nghĩa. Chúng ta không thể khai báo Method Local Class là private, protected, static và transient nhưng chúng ta có thể khai báo nó dưới dạng trừu tượng và cuối cùng, nhưng không phải cả hai cùng một lúc.

  1. Static Inner class

Một lớp lồng nhau tĩnh hoạt động như một thành viên tĩnh của lớp bên ngoài. Vì nó là một thành viên tĩnh, chúng ta có thể truy cập nó mà không cần khởi tạo lớp bên ngoài với sự trợ giúp của phương thức tĩnh. Vì vậy, chúng ta có thể nói rằng về mặt kỹ thuật, các lớp Static Inner không phải là một lồng nhau trong Java. Tương tự như các thành viên tĩnh, một lớp lồng nhau tĩnh không thể truy cập các biến cá thể và phương thức của lớp bên ngoài.

Ví dụ:

package com.techvidvan.innerclass;

public class OuterClassDemo

{

  static class NestedDemo

  {

    public void myMethod()

    {

      System.out.println("This is a static nested class");

    }

    public static void main(String args[])

    {

      //Accessing the static nested class without initializing the object //of Outer class

      OuterClassDemo.NestedDemo nested = new            

                        OuterClassDemo.NestedDemo();

                         nested.myMethod();

    }

  }

}

Output

This is a static nested class

4. Anonymous Inner class

Lớp lồng nhau ẩn danh là lớp bên trong được khai báo mà không có tên. Nó giúp bạn tạo mã ngắn gọn hơn. Nói chung, chúng được sử dụng khi có nhu cầu ghi đè phương thức của một lớp hoặc một giao diện. Chúng ta cũng có thể sử dụng chúng nếu chúng ta chỉ cần sử dụng một lớp cục bộ một lần. Chúng tương tự như các lớp bên trong cục bộ với ngoại lệ là chúng không có tên.

Kết luận: 

Bài viết trên đã giới thiệu tới bạn các kiến thức về lớp lồng nhau trong Java và 4 loại lớp lồng nhau mà bạn nên nắm rõ. Hy vọng bạn thấy bài viết này hữu ích. Tìm hiểu thêm về Java qua các bài viết của T3H. Đừng quên tham khảo các khóa học lập trình tại T3H để sẵn sàng trên hành trình trở thành lập trình viên chuyên nghiệp bạn nhé!