Java 簡單的內部類
阿新 • • 發佈:2018-12-26
內部類,即將一個類定義置於另一個類的定義之中。
上例中,Contents和Destination就是定義在Parcel1中的類。這裡稱Contents和Destination為內部類,稱Parcel1為外部類。特點:1.內部類可以自由地訪問外部類的成員變數;2.如果內部類被static修飾,即靜態的,那麼他只能訪問外部類的靜態變數。3.在外部類非static方法內部之外的任何地方(即static方法)生成內部類的一個物件,必須將那個物件的型別設為“外部類.內部類”(如main中Parcel1.Contents a = p.cont();以及ship中 Contents c = new Contents();)。例如cont()就是外部類的一個特殊方法,返回一個內部類的控制代碼。public class Parcel1 { class Contents{ private int i = 11; public int value(){ return i; } } public Contents cont(){ return new Contents(); } class Destination{ private String label; Destination(String whereTo){ label = whereTo; } String readLabel(){ return label; } } public Destination dest(String la){ return new Destination(la); } public void ship(String dest){ Contents c = new Contents(); Destination d = new Destination(dest); System.out.println(d.readLabel() + c.i); } public static void main(String[] args) { // TODO Auto-generated method stub Parcel1 p = new Parcel1(); p.ship("hahaha"); Parcel1.Contents a = p.cont(); Parcel1.Destination b = p.dest("lalala"); System.out.println(b.readLabel() + a.i); } }