outer class 应该就是非内部类或者匿名类。
就是一个 Java 文件,一开始定义的 class。
如果在这个 class 里面再定义 class,就属于内部类了
访问内部类必须从外部类的名称开始查找,不然就找不到。
这句话的意思大概是:class A {
class B {
} void method() {
B b; // 正确
} static void mathod1() {
B b; // 错误,静态方法无法访问非静态的 class B
}
}class C {
B b; // 错误,无法访问
A.B b; // 这样应该也是错了,毕竟 B 不是静态的
}其实那句话也不全对,如果定义 class B 的时候是:
class A {
static class B {
}
}
那么在 static void method1() 中定义 B b; 就是正确的。
在 class C 中使用 A.B 来访问 B 类也是正确的,因为此时B是A的静态成员
就是一个 Java 文件,一开始定义的 class。
如果在这个 class 里面再定义 class,就属于内部类了
访问内部类必须从外部类的名称开始查找,不然就找不到。
这句话的意思大概是:class A {
class B {
} void method() {
B b; // 正确
} static void mathod1() {
B b; // 错误,静态方法无法访问非静态的 class B
}
}class C {
B b; // 错误,无法访问
A.B b; // 这样应该也是错了,毕竟 B 不是静态的
}其实那句话也不全对,如果定义 class B 的时候是:
class A {
static class B {
}
}
那么在 static void method1() 中定义 B b; 就是正确的。
在 class C 中使用 A.B 来访问 B 类也是正确的,因为此时B是A的静态成员
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货