java 中內(nèi)部類的實(shí)例詳解
java 中內(nèi)部類的實(shí)例詳解
一:內(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)部類之所以可以直接訪問外部類的成員變量,是因?yàn)閮?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)的即定義在了類里 ,在此獎(jiǎng)內(nèi)部類定義為局部變量,即定義在方法里.尤其注意:此時(shí)內(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ū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- java 內(nèi)部類(匿名類,匿名對象,靜態(tài)內(nèi)部類)詳解及實(shí)例
- Java開發(fā)之內(nèi)部類對象的創(chuàng)建及hook機(jī)制分析
- Java內(nèi)部類的全限定名規(guī)律代碼示例
- Java中的靜態(tài)內(nèi)部類詳解及代碼示例
- Java單例模式實(shí)現(xiàn)靜態(tài)內(nèi)部類方法示例
- java中的匿名內(nèi)部類總結(jié)
- java 內(nèi)部類的實(shí)例詳解
- 詳解Java 中的嵌套類與內(nèi)部類
- java 中匿名內(nèi)部類的實(shí)例詳解
- Java匿名對象與匿名內(nèi)部類
相關(guān)文章
java中instanceof 關(guān)鍵字作用和實(shí)際用途詳解
這篇文章主要介紹了java中instanceof 關(guān)鍵字作用和實(shí)際用途,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Spring Security獲取用戶認(rèn)證信息的實(shí)現(xiàn)流程
Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(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é)合實(shí)例形式分析了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實(shí)現(xiàn)短信驗(yàn)證碼服務(wù)的完整代碼示例
這篇文章主要介紹了Java實(shí)現(xiàn)短信驗(yàn)證碼服務(wù)的完整代碼示例,文中使用阿里云的短信服務(wù)進(jìn)行應(yīng)用開發(fā)的流程,包括將屬性寫入application.yml配置文件,定義類并指定配置文件,注入實(shí)體類對象等等,需要的朋友可以參考下2024-09-09Spring init-method與destroy-method屬性的用法解析
這篇文章主要介紹了Spring init-method與destroy-method屬性的用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08