VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các khái niệm Java OOPs Java String Xử Lý Ngoại Lệ

Các lớp lồng nhau

Inner class là gì? Member inner class Anonymous inner class Local inner class Static nested class Nested interface
Đa Luồng (Multithreading) Java AWT Java Swing Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Member inner class trong java


Java inner class – lớp lồng nhau trong java
Anonymous inner class trong java

Nội dung chính

  • Định nghĩa và cú pháp
  • Ví dụ về member inner class trong java
  • Hoạt động nội bộ của member inner class trong java
  • Code nội bộ được tạo ra bởi trình biên dịch

Định nghĩa và cú pháp

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ụ về member inner class trong java

Trong ví dụ này, chúng ta tạo phương thức msg() trong thành viên lớp bên trong (lớp Inner) đó là truy cập vào thành viên dữ liệu private của lớp bên ngoài.

class TestMemberOuter1 {
    private int data = 30;

    class Inner {
        void msg() {
            System.out.println("data is " + data);
        }
    }

    public static void main(String args[]) {
        TestMemberOuter1 obj = new TestMemberOuter1();
        TestMemberOuter1.Inner in = obj.new Inner();
        in.msg();
    }
}

Output:

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à Outer$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 Outer đó 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 Outer bao gồm cả private.

import java.io.PrintStream;

class Outer$Inner {
    final Outer this$0;

    Outer$Inner() {
        super();
        this$0 = Outer.this;
    }

    void msg() {
        System.out.println((new StringBuilder()).append("data is ")
            .append(Outer.access$000(Outer.this)).toString());
    }
}

Bài tiếp theo: Anonymous Inner Class trong java

Java inner class – lớp lồng nhau trong java
Anonymous inner class trong java

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiPseudo Class trong CSSSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml