資源描述:
《java語言基礎:內(nèi)部類》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、Java語言基礎:內(nèi)部類內(nèi)部類,計算機面向?qū)ο蟪绦蛟O計概念。向?qū)ο蟪绦蛟O計中,可以在一個類的內(nèi)部定義另一個類,這種類稱為嵌套類(nestedclasses),它有兩種類型,即靜態(tài)嵌套類和非靜態(tài)嵌套類。內(nèi)部類,計算機面向?qū)ο蟪绦蛟O計概念。向?qū)ο蟪绦蛟O計中,可以在一個類的內(nèi)部定義另一個類,這種類稱為嵌套類(nestedclasses),它有兩種類型,即靜態(tài)嵌套類和非靜態(tài)嵌套類。靜態(tài)嵌套類使用很少,最重要的是非靜態(tài)嵌套類,也即是被稱作為內(nèi)部類(inner)。內(nèi)部類是JAVA語言的主要附加部分。內(nèi)部類幾乎可以處于一個類內(nèi)部任何位置,可以與實例變量處于同一級,或處于方法之
2、內(nèi),甚至是一個表達式的一部分。1.普通內(nèi)部類普通內(nèi)部類的一個最簡單的例子:1.//?外部類????2.class?OutterClass?{????3.????//?內(nèi)部類????4.????public?class?InnerClass?{????5.????????private?int?i?=?0;????6.????????public?int?getInt(){????7.????????????return?i;????8.????????}????9.????}????10.????public?void?proc(){????11.???????
3、?InnerClass?inClass?=?new?InnerClass();????12.????????System.out.println(inClass.getInt());????13.????}????14.}????15.?????16.public?class?Main?{????????17.????public?static?void?main(String[]?args)?{????18.????????OutterClass?outClass?=?new?OutterClass();????19.????????outClass.proc
4、();????20.????}????21.}???外部類可以訪問內(nèi)部類的私有成員,內(nèi)部類也可以訪問外部類的私有成員:22.//?外部類????1.class?OutterClass?{????2.????private?int?mOut?=?10;????3.????//?內(nèi)部類????4.????public?class?InnerClass?{????5.????????private?int?mIn?=?0;????6.????????public?void?printOutPrivate(){????7.????????????//?直接打印外部類的成
5、員????8.????????????System.out.println(mOut);????9.????????}????10.????}????11.????public?void?printInPrivate(){????12.????????InnerClass?inClass?=?new?InnerClass();????13.????????//?直接打印內(nèi)部類的私有成員????14.????????System.out.println(inClass.mIn);????15.????}????16.????public?void?printOut
6、Private(){????17.????????InnerClass?inClass?=?new?InnerClass();????18.????????inClass.printOutPrivate();????19.????}????20.}????21.?????22.public?class?Main?{????????23.????public?static?void?main(String[]?args)?{????24.????????OutterClass?outClass?=?new?OutterClass();????25.????????
7、outClass.printInPrivate();????26.????????outClass.printOutPrivate();????27.????}????28.}???如果外部類的成員變量與內(nèi)部類的成員變量名字相同,當內(nèi)部類要訪問外部類的該成員時,可以使用“OutClass.this.mem”來區(qū)分:29.//?外部類????30.class?OutterClass?{????31.????private?int?mMem?=?10;????32.????//?內(nèi)部類????33.????public?class?InnerClass?{????3
8、4.????????pr