[Java] Inner Class

Inner class là class được khai báo trong 1 class khác. VD class Inner được khai báo trong class Outer
Các phương thức trong class Outer có thể khai báo các đối tượng của class Inner một cách bình thường.
Tuy nhiên các phương thức trong các class khác ngang hàng với class Outer phải khai Import class Outer hoặc khai báo như sau:
Outer.Inner out = new Outer().new Inner();

Code minh họa:

//Inner class là class được khai báo trong class khác.

class InnerClass{
	public static void main(String [] args){
		Outer out = new Outer();	// tạo 1 đối tượng của class Outer
		out.outerShow();	//thực hiện phương thức outerShoư().
		
		MyClass myOut = new MyClass();	//tạo 1 đối tượng của MyClass
		myOut.myShow();	//thực hiên phương thức myShow().
	}
}

class Outer{
	public void outerShow(){
		Inner inner = new Inner();	//tạo đối tượng Inner cùng nằm trong class Outer
		inner.innerShow();
	}
	class Inner{		//Class Inner nằm trong class Outer
		public void innerShow(){
			System.out.println("This is Inner class.");
		}
	}
}

class MyClass{
	public void myShow(){
		//tạo 1 đối tượng của class Inner trong 1 class ngang hàng với class Outer chứa class Inner
		Outer.Inner out = new Outer().new Inner();	
		System.out.print("MyClass call Inner : ");
		out.innerShow();
	}
}