java 內(nèi)部類的詳解及實(shí)例
java 內(nèi)部類的詳解及實(shí)例
內(nèi)部類的存在意義:
每個(gè)內(nèi)部類都能獨(dú)立地繼承自一個(gè)(接口的)實(shí)現(xiàn),所以無(wú)論外圍類是否已經(jīng)繼承了某個(gè)(接口的)實(shí)現(xiàn),對(duì)于內(nèi)部類都沒(méi)有影響。內(nèi)部類使得多重繼承的解決方案變得完整。接口解決了部分問(wèn)題,二內(nèi)部類有效地實(shí)現(xiàn)了“多重繼承”。(這是《Java編程思想》里面的解釋)
代碼:
public class OuterAndInnerClass { public static void main(String[] args) { //創(chuàng)建內(nèi)部類對(duì)象的方法一 //Outer.Inner inner = new Outer().new Inner(); //創(chuàng)建內(nèi)部類對(duì)象的方法二 Outer outer = new Outer(); Outer.Inner inner = outer.getInner(); inner.output(); //驗(yàn)證方法里面的內(nèi)部類 outer.test(); } } class Outer { int[] items = {1,2,3,4}; class Inner { //內(nèi)部類可以訪問(wèn)外部類的成員變量以及方法 public void output(){ for(int i = 0; i<items.length; i++){ System.out.println(items[i]+""); } } }; public Inner getInner(){ return new Inner(); //匿名內(nèi)部類,如果需要,匿名內(nèi)部類里面可以寫(xiě)各種屬性以及方法體 } //在方法里面創(chuàng)建一個(gè)內(nèi)部類(其實(shí)可以在需要的地方創(chuàng)建內(nèi)部類) public void test(){ class MethodInnerClass { public void innerMethod(){ System.out.println("這是方法里面的內(nèi)部類"); } }; MethodInnerClass methodInnerClass = new MethodInnerClass(); methodInnerClass.innerMethod(); } };
接口里面也可以定義內(nèi)部類:
interface InterfaceInnerClass { void f(); //注意:這里使用java InterfaceInnerClass.java編譯,使用java InterfaceInnerClass$Test運(yùn)行 class Test implements InterfaceInnerClass { public void f(){ System.out.println("Hello World!"); } public static void main(String[] args) { new Test().f(); } }; }
以上就是java 內(nèi)部類的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
SpringBoot使用Jasypt對(duì)配置文件和數(shù)據(jù)庫(kù)密碼加密
在做數(shù)據(jù)庫(kù)敏感信息保護(hù)時(shí),應(yīng)加密存儲(chǔ),本文就來(lái)介紹一下SpringBoot使用Jasypt對(duì)配置文件和數(shù)據(jù)庫(kù)密碼加密,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Java這個(gè)名字的來(lái)歷與優(yōu)勢(shì)
Java是Sun公司開(kāi)發(fā)的一種編程語(yǔ)言,Sun公司最初的方向是讓Java來(lái)開(kāi)發(fā)一些電器裝置程序,Java名字的由來(lái),實(shí)際上是一個(gè)有趣的故事。2014-10-10spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql
這篇文章主要為大家詳細(xì)介紹了spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03SpringBoot結(jié)合Ajax實(shí)現(xiàn)登錄頁(yè)面實(shí)例
大家好,本篇文章主要講的是SpringBoot結(jié)合Ajax實(shí)現(xiàn)登錄頁(yè)面實(shí)例,感興趣的同學(xué)趕快來(lái)看一看,對(duì)你有幫助的話記得收藏一下2022-02-02詳解JAVA生成將圖片存入數(shù)據(jù)庫(kù)的sql語(yǔ)句實(shí)現(xiàn)方法
這篇文章主要介紹了詳解JAVA生成將圖片存入數(shù)據(jù)庫(kù)的sql語(yǔ)句實(shí)現(xiàn)方法的相關(guān)資料,這里就是實(shí)現(xiàn)java生成圖片并存入數(shù)據(jù)庫(kù)的實(shí)例,需要的朋友可以參考下2017-08-08Spring零基礎(chǔ)到進(jìn)階之鴻蒙開(kāi)篇
Spring框架是一個(gè)開(kāi)放源代碼的J2EE應(yīng)用程序框架,由Rod Johnson發(fā)起,是針對(duì)bean的生命周期進(jìn)行管理的輕量級(jí)容器(lightweight container)。 Spring解決了開(kāi)發(fā)者在J2EE開(kāi)發(fā)中遇到的許多常見(jiàn)的問(wèn)題,提供了功能強(qiáng)大IOC、AOP及Web MVC等功能2022-07-07