java內部類的理解
之前一直體會不了java內部類的好處,現在通過一個小專案,在實現隊友的抽象類和介面時,終於覺得,java內部類真的是一個很周到的設計!!
舉例如下:
我今天的工作內容是:建立一個類Boy ,由於業務需要,它必須(1)要繼承隊友A的包中的類Person,(2)還要繼承隊友B的包中的父類Man 。
public class Person{
public void eat(){
System.out.println(“我吃雞我吃雞我吃雞”);
}
public void run(){
System.out.println(“我跑跑跑”);
}
}
public class Man{//站著尿
private int age;
private boolean isChild(){
if(this.age <= 2){
return true;
}
return false;
}
public void standToNiao(){
if(isChild()){//standToNiao()內部需要isChild(),
System.out.println(“站著尿站著尿站著尿”);
}else{
System.out.println(“蹲著尿蹲著尿蹲著尿”);
}
}
}
業務需求是:我要建立一個Boy的類,它剛好需要繼承類Person的eat(),繼承類Man的standToNiao().可是問題來了,java中我怎麼可以多繼承??!!怎麼辦呢?!!
我想了很久也想不出什麼方法來做到符合業務需求。無可奈何之時,正準備跟隊友說能不能修改一下Man成為介面,可是立馬遭到對方的狂噴----因為他負責的專案模組中很多類都是繼承了Man的,如果改Man的話,就都得改了,所以他頑強反抗!!我覺得如果這樣對他太殘忍了。
就在此時,我翻了一下教科書,咋地一下映入眼簾的是內部類!!!內部類,就是類中的類,最重要的是這個類可以呼叫外部類的屬性和方法!!就這個特點,我覺得就為我的程式碼設計增添了很多可能性,以及為我在解決問題方面增添了多幾條思路!!於是,我嘗試著這樣設計:
class Boy extends Person{
private int name;
private class InBoy extends Man{}//內部類
public void standToNiao(){
InBoy inBoy = new InBoy();
inBoy. standToNiao();
}
}
後記:內部類的出現,在程式碼結構設計方面給了我們更多的選擇。其實java裡面的很多設計都不是說新增了什麼特性,而是為我們程式設計提供了更多的方案性的解決途徑。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1535161/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java內部類和匿名內部類的用法Java
- 匿名內部類理解
- java的內部類Java
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- 深入理解java巢狀類和內部類、匿名類Java巢狀
- Java基礎8:深入理解內部類Java
- java內部類之成員內部類之匿名內部類Java
- Java內部類詳解--匿名內部類Java
- java內部類之成員內部類Java
- Java 內部類Java
- Java內部類Java
- Java中的巢狀類、內部類、靜態內部類Java巢狀
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- java中的內部類Java
- java之內部類(InnerClass)----非靜態內部類、靜態內部類、區域性內部類、匿名內部類Java
- Java中的匿名內部類及內部類的二三事Java
- Java內部類詳解-- 成員內部類Java
- java內部類,為什麼需要內部類?Java
- java內部類之成員內部類之區域性內部類Java
- 10、Java——內部類Java
- java內部類案例Java
- 搞懂 JAVA 內部類Java
- Java--內部類Java
- Java內部類詳解--區域性內部類Java
- java內部類之成員內部類例項Java
- Java類與匿名內部類Java
- Java 的抽象類, 介面以及內部類Java抽象
- Java基礎內部類4-內部類進階Java
- Java基礎10---包、內部類、匿名內部類Java
- Java基礎--Java 內部類Java
- 淺談java內部類Java
- Java-InnerClass內部類Java
- Java內部類詳解Java
- Java 內部類詳解Java
- java靜態內部類Java
- JAVA內部類有關Java
- JAVA內部類學習Java
- 初識Java內部類Java