Friday, August 7, 2020

Member inner class trong java

 Hôm nay chúng ta sẽ tiếp tục bài học lớp lồng nhau trong java, đây là một bài viết về Member inner class trong java các bạn có thể tham khảo lý thuyết và những ví dụ liên quan đến member inner trong java để năm rỏ được hơn.


Member inner class là gì?

Một lớp non-static được tạo ra bên trong một lớp nhưng ngoài một phương thức được gọi là thành viên bên trong lớp hay member inner class trong java.

Cú pháp

class Outer {

    // code

    class Inner {

        // code

    }

}

Ví dụ :

class MemberOuterExample {

    private int data = 30;

 

    class Inner {

        void msg() {

            System.out.println("data is " + data);

        }

    }

 

    public static void main(String args[]) {

        MemberOuterExample obj = new MemberOuterExample();

        MemberOuterExample.Inner in = obj.new Inner();

        in.msg();

    }

}

Kết quả

data is 30

Hoạt động nội bộ của member inner class trong java

Trình biên dịch java tạo ra hai file .class trong trường hợp của inner class. Tên của file của lớp bên trong là “Outer$Inner”. Nếu bạn muốn tạo ra thể hiện của lớp bên trong, bạn phải tạo ra thể hiện của lớp bên ngoài. Trong trường hợp này, thể hiện của lớp bên trong được tạo ra bên trong thể hiện của lớp bên ngoài.

Code nội bộ được tạo ra bởi trình biên dịch

Trình biên dịch java tạo ra một file .class tên là MemberOuterExample$Inner trong trường hợp này. Các member inner class có tham chiếu của lớp bên ngoài MemberOuterExample đó là lý do tại sao nó có thể truy cập tất cả các thành viên dữ liệu của lớp MemberOuterExample bao gồm cả private.

class MemberOuterExample$Inner {

    final MemberOuterExample this$0;

 

    MemberOuterExample$Inner() {

        super();

        this$0 = MemberOuterExample.this;

    }

 

    void msg() {

        System.out.println((new StringBuilder()).append("data is ")

            .append(MemberOuterExample.access$000(MemberOuterExample.this)).toString());

    }

}

No comments:

Post a Comment