07/05/26 16:34:22
>>848
>classの中にもう1つclassを作るのと、
>classの外にもう1つclassを作る違いがわかんね
(1) static でないインナークラスの場合
class A {
class B {
A のインスタンス a の中でのみ
B のインスタンス b を作れるが、
内側の b から外側の a を参照することが可能。
class A {
void doA() { B b = new B(); } // OK
static void doA() { B b = new B(); } // NG
int field;
class B {
int doB() { return A.this.field; } // OK, 名前の衝突がない限り、"A.this" は不要
(2) static なインナークラスの場合
class A {
static class B {
はっきり言って別々のクラスとかわんね