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
❮ ❯

Local inner class trong java


Anonymous inner class trong java
Static nested class trong java

Nội dung chính

  • Định nghĩa
  • Ví dụ về local inner class trong java
    • Lớp nội được tạo ra bởi trình biên dịch
  • Các quy tắc cho Local Inner class
  • Ví dụ về local inner class với biến local

Định nghĩa

Một lớp được tạo ra bên trong một phương thức được gọi là local inner class trong java. Nếu bạn muốn gọi các phương thức của lớp được khai báo bên trong một phương thức, bạn phải tạo ra thể hiện của lớp này bên trong phương thức chứa nó.


Ví dụ về local inner class trong java

Vi dụ Local Inner Class trong java

File: LocalInner1.java

public class LocalInner1 {
    private int data = 30;// biến instance

    void display() {
        class Local {
            void msg() {
                System.out.println(data);
            }
        }
        Local l = new Local();
        l.msg();
    }

    public static void main(String args[]) {
        LocalInner1 obj = new LocalInner1();
        obj.display();
    }
}

Output:

30

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

Trong trường hợp này, trình biên dịch sẽ tạo ra một lớp có tên LocalInner1$1Local.class có tham chiếu của lớp bên ngoài (LocalInner1) .

import java.io.PrintStream;

class LocalInner1$Local {
    final LocalInner1 this$0;

    LocalInner1$Local() {
        super();
        this$0 = Simple.this;
    }

    void msg() {
        System.out.println(LocalInner1.access$000(LocalInner1.this));
    }
}
Quy tắc: Biến local không thể là private, public hoặc protected.

Các quy tắc cho Local Inner class

1) Quy tắc: Local Inner class không thể được gọi từ một phương thức bên ngoài.
2) Quy tắc: Local Inner class không thể truy cập biến local non-final từ JDK 1.7 trở vể trước. Kể từ JDK 1.8, có thể truy cập vào các biến local non-final trong lớp local inner class.

Ví dụ về local inner class với biến local

class LocalInner2 {
    private int data = 30; // biến instance

    void display() {
        int value = 50; // biến local phải là final từ jdk 1.7 trở về trước
        class Local {
            void msg() {
                System.out.println(value);
            }
        }
        Local l = new Local();
        l.msg();
    }

    public static void main(String args[]) {
        LocalInner2 obj = new LocalInner2();
        obj.display();
    }
}

Output:

50
Bài tiếp theo: Static Nested Class trong java

Anonymous inner class trong java
Static nested 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