1. Java的內部類機制
所謂內部類,是指在一個類的內部還有另外一個類的定義. 在Java中,可以在類的內部定義內部類, 也可以在方法內部定義一個類.
對於第一種形式,即類的內部定義一個新類,比較簡單,舉例如下:
class Outer //外部類{private String name = "newsainton";class Inner //內部類{//內部類可以調用調用外部類的私人屬性name,並列印之.public void printName(){System.out.println("name = "+name);}}//定義一個外部類的方法,調用內部類的方法public void print(){new Inner().printName();}}class OODemo04{public static void main(String args[]){//先產生一個外部類對象Outer out = new Outer();//調用外部類的列印方法out.print();}}
而對於第二種,在方法體內定義內部類, 有需要注意的地方就是: 在方法體內定義的內部類,可以訪問外部類的任意屬性,但是不能直接存取方法中的參數變數.
如果需要讓內部類存取方法的參數變數,需要在方法參數前加上"final"關鍵字.
舉例如下:
class Outer //外部類{private String name = "newsainton";public void fun(final int i)//在方法內定義內部類{//若內部類要訪問這裡的i和j,需要將i&j設定為finalfinal int j = 10;class Inner //內部類{//內部類可以調用調用外部類的私人屬性name,並列印之.public void printName(){System.out.println("name = "+name);System.out.println("i + j = "+(i+j));}}new Inner().printName();}}class OODemo05{public static void main(String args[]){//先產生一個外部類對象Outer out = new Outer();//調用外部類的列印方法out.fun(13);}}
使用內部類的優缺點是:
(1)優點: 使用內部類可以直接存取外部類的私人屬性;
(2)缺點: 含有內部類的程式,代碼結構不很好.
2. Java的對象數組
對象數組個概念應用幾乎與數組一致,不同的是, 對象數組是一組相同類型對象而組成的集合,因此初始化時,對象的預設值是null.
與數群組類型一樣, 對象數組的聲明和初始化採取的是: 類名稱[] 對象數組名稱 = new 類名稱[對象個數] 的方法, 使用方法與數組類似,例如 要取得對象數組的長度也是使用對象數組名稱.length O(∩_∩)O~