VietTuts

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

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • Python
  • PHP
  • Eclipse
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Phần mềm tiện ích
    • Cấu trúc dữ liệu và giải thuật
    • Học lập trình C#
    • 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

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

Toá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 JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaBài tập quản lý sinh viên trong JavaHashSet trong javaHashMap trong javaLớp WindowAdapter trong Java SwingLớp MouseMotionAdapter trong Java SwingLớp MouseAdapter trong Java SwingLớp KeyAdapter trong Java Swing

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
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL

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

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …

Scroll back to top

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