46. 内部クラス2

46. 内部クラス2

メンバクラス

L:\lesson115\test.java

class test {
    public static void main(String args[]) {
        top1 obj1 = new top1();
        top1.Kitty rena1 = obj1.getKitty();
        rena1.write();

        top2 obj2 = new top2();
        top2.Kitty rena2 = obj2.getKitty();
        rena2.write();
    }
}

class top1 {
    Kitty getKitty() {
        Kitty obj = new Kitty();
        return obj;
    }
    class Kitty {
        void write() {
            System.out.println("top1.Kitty.write");
        }
    }
}

class top2 {
    Kitty getKitty() {
        Kitty obj = new Kitty();
        return obj;
    }
    void write(String str) {
        System.out.println(str);
    }
    class Kitty {
        void write() {
            top2.this.write("top2.Kitty.write");
        }
    }
}

実行結果

L:\lesson115>java test
top1.Kitty.write
top2.Kitty.write