2006/10/01

外部類別與內部類別間的相互存取

  如何從外部類別存取內部類別的成員?如何從內部類別存取外部類別的成員?好像有點繞口@@,常看到新手在問,而入門書講到內部類別通常都簡單帶過去,很少有詳細範例,在這貼個簡單的例子,希望能幫助有緣人。 看看下面的例子會容易明白些...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

package hluo.blog;

public class Outer {
    int i = 0;

    // 內部類別
    private class Inner {
        int j = 1;

        private void changeI() {
            // 改變外部成員i
            Outer.this.i = 10;
        }
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner();

        System.out.println("內部成員j = " + inner.j);
        System.out.println("外部成員i = " + outer.i);
        inner.changeI();
        System.out.println("外部成員i改變後 = " + outer.i);
    }
}

執行結果
1
2
3

內部成員j = 1
外部成員i = 0
外部成員i改變後 = 10

沒有留言: