Computer >> Máy Tính >  >> Lập trình >> Java

Các loại lớp lồng nhau khác nhau được định nghĩa trong Java là gì?

Trong Java, có thể xác định một lớp bên trong một lớp khác , các lớp như vậy được gọi là Các lớp lồng nhau . Chúng tôi có thể sử dụng các công cụ sửa đổi quyền truy cập như riêng tư, công khai, được bảo vệ hoặc mặc định cho các lớp bên trong mặc định hoặc công khai công cụ sửa đổi truy cập cho lớp bên ngoài .

Có hai loại lớp lồng nhau được định nghĩa trong Java.

  • Lớp lồng nhau tĩnh
  • Lớp lồng nhau không tĩnh

Lớp lồng nhau tĩnh

  • Chúng ta có thể định nghĩa một lớp bên trong là lớp tĩnh, vì vậy loại lớp như vậy được gọi là lớp lồng nhau tĩnh.
  • Lớp lồng nhau được xác định với từ khóa tĩnh , do đó, loại lớp lồng nhau này không chia sẻ bất kỳ mối quan hệ nào với trường hợp của lớp ngoài .
  • Một clas lồng nhau tĩnh s có thể truy cập thành viên tĩnh của lớp chúng tôi.

Ví dụ

class Car {
   static class Wheel {
      public void rotate() {
         System.out.println("The wheel is rotating");
      }
   }
}
public class Test {
   public static void main(String args[]) {
      Car.Wheel wheel = new Car.Wheel();
      wheel.rotate();
   }
}

Đầu ra

The wheel is rotating


Lớp lồng nhau không tĩnh

  • Một lớp lồng nhau không tĩnh gián tiếp được biết đến như một lớp bên trong trong Java.
  • Lớp bên trong được liên kết với đối tượng của lớp ngoài . Vì vậy, lớp bên trong được coi như các biến và phương thức khác của lớp bên ngoài.
  • Lớp bên trong được liên kết với đối tượng hoặc phiên bản lớp bên ngoài, vì vậy chúng tôi không thể khai báo các biến tĩnh bên trong lớp bên trong.

Ví dụ

public class OuterClassTest {
   private int a = 10;
   public void innerClassInstance() {
      InnerClassTest inner = new InnerClassTest();
      inner.outerObject();
   }
   public static void main(String args[]) {
      OuterClassTest outer = new OuterClassTest();
      outer.innerClassInstance();
   }
   class InnerClassTest {
      public void outerObject() {
         System.out.println("Outer Value of a is: " + a);
      }
   }
}

Đầu ra

Outer Value of a is: 10