java 內(nèi)部類的詳解及實例
java 內(nèi)部類的詳解及實例
內(nèi)部類的存在意義:
每個內(nèi)部類都能獨立地繼承自一個(接口的)實現(xiàn),所以無論外圍類是否已經(jīng)繼承了某個(接口的)實現(xiàn),對于內(nèi)部類都沒有影響。內(nèi)部類使得多重繼承的解決方案變得完整。接口解決了部分問題,二內(nèi)部類有效地實現(xiàn)了“多重繼承”。(這是《Java編程思想》里面的解釋)
代碼:
public class OuterAndInnerClass
{
public static void main(String[] args)
{
//創(chuàng)建內(nèi)部類對象的方法一
//Outer.Inner inner = new Outer().new Inner();
//創(chuàng)建內(nèi)部類對象的方法二
Outer outer = new Outer();
Outer.Inner inner = outer.getInner();
inner.output();
//驗證方法里面的內(nèi)部類
outer.test();
}
}
class Outer
{
int[] items = {1,2,3,4};
class Inner
{
//內(nèi)部類可以訪問外部類的成員變量以及方法
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)部類里面可以寫各種屬性以及方法體
}
//在方法里面創(chuàng)建一個內(nèi)部類(其實可以在需要的地方創(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運行
class Test implements InterfaceInnerClass
{
public void f(){
System.out.println("Hello World!");
}
public static void main(String[] args)
{
new Test().f();
}
};
}
以上就是java 內(nèi)部類的實例詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
java執(zhí)行shell并獲取shell輸出日志方式
這篇文章主要介紹了java執(zhí)行shell并獲取shell輸出日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
SpringBoot排除不需要的自動配置類DataSourceAutoConfiguration問題
這篇文章主要介紹了SpringBoot排除不需要的自動配置類DataSourceAutoConfiguration問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
Java網(wǎng)絡通信中ServerSocket的設計優(yōu)化方案
今天小編就為大家分享一篇關于Java網(wǎng)絡通信中ServerSocket的設計優(yōu)化方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04

