94. Inner Class trong lập trình Java

Trong lập trình Java, một Inner Class (lớp lồng trong) là một lớp được định nghĩa bên trong một lớp khác. Inner Class có thể được xem như là một thành viên của lớp bên ngoài và có quyền truy cập vào các trường (fields) và phương thức của lớp bên ngoài, bao gồm cả các trường và phương thức private.

Có hai loại Inner Class trong Java:

  1. Non-static (Non-static Nested Class) Inner Class: Đây là một lớp lồng không tĩnh, được định nghĩa bên trong một lớp khác như một thành viên của lớp bên ngoài. Non-static Inner Class có quyền truy cập vào tất cả các thành viên của lớp bên ngoài, bao gồm cả các trường và phương thức private.
java
public class OuterClass {
    private int x;

    public class InnerClass {
        public void display() {
            System.out.println("Value of x: " + x);
        }
    }
}
  1. Static Inner Class: Đây là một lớp lồng tĩnh, được định nghĩa bên trong một lớp khác như một thành viên tĩnh của lớp bên ngoài. Static Inner Class không thể truy cập các trường và phương thức không tĩnh của lớp bên ngoài, nhưng nó có thể truy cập các trường và phương thức tĩnh của lớp bên ngoài.
java
public class OuterClass {
    private static int y;

    public static class StaticInnerClass {
        public void display() {
            System.out.println("Value of y: " + y);
        }
    }
}

Để tạo một đối tượng Inner Class từ bên ngoài lớp bao ngoài, bạn cần tạo trước một đối tượng Outer Class, sau đó sử dụng nó để tạo đối tượng Inner Class.

Ví dụ sử dụng Non-static Inner Class:

java
public class Main {
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display();
    }
}

Ví dụ sử dụng Static Inner Class:

java
public class Main {
    public static void main(String[] args) {
        OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
        inner.display();
    }
}

Inner Class được sử dụng chủ yếu để tạo các lớp liên quan chặt chẽ với lớp bên ngoài của nó, giúp tăng tính đóng gói và giữ cho mã của bạn dễ đọc và bảo trì hơn.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top