閱讀545 返回首頁    go 人物


Java麵向對象基礎--內部類

1、什麼是內部類?

一個類中還存在另外一個類,則成為內部類。

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

使用內部類的優點:可以方便的訪問外部類中的私有屬性。

2、使用static聲明內部類

如果一個內部類使用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()方法
	}
};

使用static關鍵字聲明的內部類,就稱為了外部類,可以直接在類的外部調用。但是,要訪問外部類中的屬性,則必須是static訪問權限。

3、在其他類中訪問內部類

一個內部類除了可以通過外部類訪問,還可以在其他類中調用。其格式為:
外部類.內部類  內部類對象 = 外部類實例 .new 內部類();
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() ;						// 調用內部類的方法
	}
};

4、在方法中定義內部類

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) ;	// 調用外部類的方法
	}
};


最後更新:2017-04-03 16:49:06

  上一篇:go 交換兩個表
  下一篇:go 遠程登錄:telnet