Han*_*Goc 1 java inner-classes
在以下代码中.我们有一个类TestInners,一个内部类 A,一个方法局部内部类A和一个外A级.
new A().m();输出
中间一样.在代码中.为什么输出中间?首先是对内部类的偏好吗?那么外类呢?我很困惑.
class A { void m() { System.out.println("outer"); } }
public class TestInners {
public static void main(String[] args) {
new TestInners().go();
}
void go() {
new A().m();
class A { void m() { System.out.println("inner"); } }
}
class A { void m() { System.out.println("middle"); } }
}
Run Code Online (Sandbox Code Playgroud)
是的,如果您使用更多本地定义影子符号,则选择的本地符号越多.最常见的是方法参数与实例字段,导致着名的this.name = name习语.
在您的情况下,您可以使用完全限定的类名来访问外部类.
但是不要那样命名类.无缘无故太混乱了.
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |