java 中內(nèi)部類的實例詳解
java 中內(nèi)部類的實例詳解
一:內(nèi)部類可直接訪問外部類的成員變量,包括外部類私有的成員變量
二:外部類要訪問內(nèi)部類的成員變量,需要建立內(nèi)部類的對象
class Outer{ int x=110; public void show(){ System.out.println("外部類的x="+x); } public void showInner(){ Inner inner=new Inner(); inner.show(); System.out.println(inner.x); } class Inner{//內(nèi)部類 int x=220; public void show(){ System.out.println("內(nèi)部類的x="+x); } } } public class OuterDemo { public static void main(String[] args) { Outer outer=new Outer(); outer.show(); outer.showInner(); Outer.Inner outerInner=new Outer().new Inner();//特殊情況.外部類直接訪問內(nèi)部類成員變量 outerInner.show(); } }
內(nèi)部類之所以可以直接訪問外部類的成員變量,是因為內(nèi)部類持有外部類的引用。格式:外部類名.this
如:System.out.println("x="+Outer.this.x);//訪問外部類的x
class Outer{ int x=110; class Inner{ int x=220; public void show(){ int x=330; System.out.println("x="+x);//訪問show()中的x System.out.println("x="+this.x);//訪問內(nèi)部類的x System.out.println("x="+Outer.this.x);//訪問外部類的x } } void showInner(){ Inner inner=new Inner(); inner.show(); } } public class OuterDemo { public static void main(String[] args) { Outer outer=new Outer(); outer.showInner(); } }
在內(nèi)部類(一)和內(nèi)部類(二)中,內(nèi)部類都是作為全局變量出現(xiàn)的即定義在了類里 ,在此獎內(nèi)部類定義為局部變量,即定義在方法里.尤其注意:此時內(nèi)部類要想訪問局部變量,那么此 局部變量必須是被final修飾的,如此處的y
package cn.com; class Outer { int x = 110; public void show() { final int y=99; class Inner {// 內(nèi)部類 int x = 880; public void showInner() { System.out.println("局部變量y=" + y); } } new Inner().showInner(); } } public class OuterDemo { public static void main(String[] args) { Outer outer = new Outer(); outer.show(); } }
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
java中instanceof 關(guān)鍵字作用和實際用途詳解
這篇文章主要介紹了java中instanceof 關(guān)鍵字作用和實際用途,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04Spring Security獲取用戶認(rèn)證信息的實現(xiàn)流程
Spring Security是一個能夠為基于Spring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應(yīng)用上下文中配置的Bean,充分利用了Spring IoC,DI和AOP功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問控制功能2022-12-12Java及Android中常用鏈?zhǔn)秸{(diào)用寫法簡單示例
這篇文章主要介紹了Java及Android中常用鏈?zhǔn)秸{(diào)用寫法,結(jié)合實例形式分析了java編程中的鏈?zhǔn)秸{(diào)用概念、簡單使用方法及相關(guān)操作技巧,需要的朋友可以參考下2018-01-01如何在JDK 9中更簡潔使用 try-with-resources 語句
本文詳細(xì)介紹了自 JDK 7 引入的 try-with-resources 語句的原理和用法,以及介紹了 JDK 9 對 try-with-resources 的改進(jìn),使得用戶可以更加方便、簡潔的使用 try-with-resources 語句。,需要的朋友可以參考下2019-06-06Java實現(xiàn)短信驗證碼服務(wù)的完整代碼示例
這篇文章主要介紹了Java實現(xiàn)短信驗證碼服務(wù)的完整代碼示例,文中使用阿里云的短信服務(wù)進(jìn)行應(yīng)用開發(fā)的流程,包括將屬性寫入application.yml配置文件,定義類并指定配置文件,注入實體類對象等等,需要的朋友可以參考下2024-09-09Spring init-method與destroy-method屬性的用法解析
這篇文章主要介紹了Spring init-method與destroy-method屬性的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08