1. 程式人生 > >內部類的方法(外部呼叫內部類的方法)

內部類的方法(外部呼叫內部類的方法)

1.使用static可以宣告一個內部類, 可以直接在外部呼叫

class Outer{		// 定義外部類
	private static String info = "hello world" ;	// 定義外部類的私有屬性
	static class Inner{	// 使用static定義內部類為外部類
		public void print(){				// 定義內部類的方法
			System.out.println(info) ;		// 直接訪問外部類的私有屬性
		}
	};
	public void fun(){						// 定義外部類的方法
		new Inner().print() ;				// 通過內部類的例項化物件呼叫方法
	}
};
public class InnerClassDemo03{
	public static void main(String args[]){
		new Outer.Inner().print() ;					// 呼叫外部類的fun()方法
	}
};

2.不使用statc宣告一個內部類 ,使外部呼叫

class Outer{		// 定義外部類
	private String info = "hello world" ;	// 定義外部類的私有屬性
	class Inner{	// 定義內部類
		public void print(){				// 定義內部類的方法
			System.out.println(info) ;		// 直接訪問外部類的私有屬性
		}
	};
	public void fun(){						// 定義外部類的方法
		new Inner().print() ;				// 通過內部類的例項化物件呼叫方法
	}
};
public class InnerClassDemo04{
	public static void main(String args[]){
		Outer out = new Outer()	;			// 外部類例項化物件
		Outer.Inner in = out.new Inner() ;	// 例項化內部類物件
		in.print() ;						// 呼叫內部類的方法
	}
};
3.在方法中定義內部類 ,使外部呼叫

class Outer{		// 定義外部類
	private String info = "hello world" ;	// 定義外部類的私有屬性
	public void fun(final int temp){		// 定義外部類的方法
		class Inner{						// 在方法中定義的內部類
			public void print(){				// 定義內部類的方法
				System.out.println("類中的屬性:" + info) ;		// 直接訪問外部類的私有屬性
				System.out.println("方法中的引數:" + temp) ;
			}
		};
		new Inner().print() ;				// 通過內部類的例項化物件呼叫方法
	}
};
public class InnerClassDemo05{
	public static void main(String args[]){
		new Outer().fun(30) ;	// 呼叫外部類的方法
	}
};