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

Làm thế nào để khởi tạo lớp bên trong thành viên trong Java?

Một lớp được khai báo bên trong một lớp nhưng bên ngoài một phương thức được gọi là lớp bên trong thành viên .

Chúng ta có thể khởi tạo một lớp Inner thành viên theo hai cách

  • Được mời trong lớp học
  • Được mời bên ngoài lớp học

Quy tắc cho Lớp bên trong

  • Lớp ngoài (lớp chứa lớp bên trong) có thể khởi tạo bao nhiêu đối tượng lớp bên trong tùy thích, bên trong mã của nó.
  • Nếu lớp bên trong là public và lớp chứa cũng vậy, thì mã trong một số lớp không liên quan khác cũng có thể tạo một phiên bản của lớp bên trong.
  • Không có đối tượng lớp bên trong nào được khởi tạo tự động với một đối tượng lớp bên ngoài.
  • Nếu lớp bên trong là tĩnh, thì lớp bên trong tĩnh có thể được khởi tạo mà không cần một cá thể lớp bên ngoài. Nếu không, đối tượng lớp bên trong phải được liên kết với một thể hiện của lớp bên ngoài.
  • Lớp bên ngoài có thể gọi ngay cả các phương thức riêng của lớp bên trong.

Lớp bên trong thành viên được gọi bên trong một lớp

Trong ví dụ dưới đây, chúng tôi đang gọi phương thức của lớp bên trong thành viên từ phương thức display () của OuterClass.

Ví dụ

public class OuterClass {
   private int value = 20;
      class InnerClass {
         void show() {
            System.out.println("Value is: " + value);
      }
   }
   void display() {
      InnerClass ic = new InnerClass();
      ic.show();
   }
   public static void main(String args[]){
      OuterClass oc = new OuterClass();
      oc.display();
   }
}
Value is: 20


Lớp bên trong thành viên được gọi bên ngoài lớp

Trong ví dụ dưới đây, chúng tôi đang gọi phương thức show () của InnerClass từ bên ngoài OuterClass, tức là lớp Test.

Ví dụ

class OuterClass {
   private int value = 20;
      class InnerClass {
         void show() {
            System.out.println("Value is: "+ value);
      }
   }
}
public class Test {
   public static void main(String args[]) {
      OuterClass obj = new OuterClass();
      OuterClass.InnerClass in = obj.new InnerClass();
      in.show();
   }
}

Đầu ra

Value is: 20