java內部類的用法
阿新 • • 發佈:2018-11-26
java內部類的用法
java中的內部類是指在一個類中定義另一個類。這樣用的好處是什麼呢?
我們先來看下內部類的實現程式碼:
package csdn; public class Csdn { public interface Content{ int content(); } public interface Destination{ String destination(); } public static class Goods{ private class Contents implements Content{ private int value; private Contents(int s) { this.value=s; System.out.println("貨物的價格"+this.value); } @Override public int content() { return this.value; } } protected class Destinations implements Destination{ private String dest; private Destinations(String s) { this.dest=s; System.out.println("貨物的目的地"+this.dest); } @Override public String destination() { return this.dest; } } public Contents cont(int a) { return new Contents(a); } public Destinations dest(String s) { return new Destinations(s); } public static void main(String[] args) { Goods good=new Goods(); Content c=good.cont(100); Destinations d=good.dest("鞋子"); } } }
執行結果:
這是一個簡單的demo。
總結下內部類應用的場景和好處:
1:我們把實現功能的類用內部類實現,達到了封裝的效果。外部只是呼叫內部類的方法而已
2:可以用內部類來實現對應類的介面,這樣能更好的實現介面的實現,避免了一個類要實現多個介面。降低耦合度。
3:由於內部類可以層層巢狀,所以某種意義上來說實現了類似於c++中的多繼承。
4:內部類可以直接訪問外部類的變數,包括外部類宣告的private變數。
注意事項:
1:由於內部類可以訪問外部類,並可以修改。而且內部類與外部類是非同步執行的,所以如果內部類要對外部類的變數訪問
最好把變數設定成static final private型別。
2:不能直接宣告內部類,要先宣告外部類在宣告內部類。因為內外類類似於繼承,也是先有祖先才有孩子。