Local Inner Class trong Java




Local Inner Class là gì?

Trong Java, một lớp được tạo bên trong một phương thức thì được gọi là Local Inner Class. Nếu bạn muốn triệu hồi các phương thức của Local Inner Class, bạn phải khởi tạo lớp này bên trong phương thức.

public class LocalInnerExample {
	private int example = 30;// khoi tao bien

	void display() {
		// day la local inner class
		class Local {
			void printMessage() {
				System.out.println("Gia tri cua bien example la: " +example);
			}
		}
		// ket thuc local inner class
		// truy cap local inner class
		Local l = new Local();
		l.printMessage();
	}

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

Chạy chương trình Java trên sẽ cho kết quả:

Gia tri cua bien example la: 30

Một số qui tắc khi sử dụng Local Inner Class trong Java

  • Các biến cục bộ không thể là private, public, hoặc protected.

  • Local Inner Class không thể được triệu hồi ở bên ngoài phương thức.

  • Từ JDK 1.7 trở về trước, trong Local Inner Class, nếu bạn muốn truy cập biến cục bộ của phương thức, thì biến đó phải thuộc kiểu final. Còn bắt đầu từ JDK 1.8 trở đi, giới hạn này đã bị loại bỏ.

Ví dụ dưới đây minh họa cách sử dụng của Local Inner Class và biến cục bộ trong Java

class LocalInnerExample {
	private int example = 30;// khoi tao bien

	void display() {
		final int value = 50;// neu bien khong phai thuoc dang final thi:
		class Local {
			void printMessage() {
				System.out.println("Gia tri cua bien value la: " +value); // se cho Compiler Error tai dong nay
			}
		}
		Local l = new Local();
		l.printMessage();
	}

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

Chạy chương trình Java trên sẽ cho kết quả:

Gia tri cua bien value la: 50