Inner Class

Duy Văn | 11/03/2025


Trong Java thì bên trong một class có thể chứa các class khác, tương tự phía Python. Mục tiêu của nó là nhóm các class có liên quan đến nhau, để tăng khả năng maintain và làm code dễ đoc hơn

Ví dụ


class OuterClass{
  int x = 10;

  class InnerClass{
    int y = 5;
  }
}

Để có thể triển khai cả hai class này, chúng ta cần tạo object của class ngoài, sau đấy mới tạo object của class bên trong


public class Main{
  public static void main(String[] args){
    OuterClass outer = new OuterClass();
    OuterClass.InnerClass inner = outer.new InnerClass();
    System.out.println(inner.y + outer.x);
  }
}

class trong cũng có thể được sử dụng với access modifier, khiến cho nó không thể được sử dụng từ bên ngoài mà chỉ có thể được triển khai thành object và sử dụng ở trong class lớn

class trong cũng có thể là một class static, nghĩa là nó không cần phải tạo object của class ngoài để tạo object của class trong


class OuterClass{
  int x = 10;

  static class InnerClass{
    int y = 5;
  }
}


public class Main{
  public static void main(String[] args){
    OuterClass.InnerClass inner = new OuterClass.InnerClass();
    System.out.println(inner.y);
  }
}

Điểm mạnh của inner class là dùng chúng vào việc xử lý dữ liệu và làm việc trực tiếp với các thuộc tính của class ngoài, ví dụ


class OuterClass{
  int x = 10;

  class InnerClass{
    int y = x; // truy cập vào thuộc tính của OuterClass
  }
}


public class Main{
  public static void main(String[] args){
    OuterClass outer = new OuterClass();
    OuterClass.InnerClass inner = outer.new InnerClass();
    System.out.println(inner.y);
  }
}