板凳基本说的都对,但有一点我不赞同
//A.B b=new A.B();这种语法不存在在java语言中,我想其他语言中估计也没有吧
这种语法在Java当中是存在的。
当B被静态关键字修饰的时候,就可以用这种方式创建内部类对象。
代码验证如下:
- public class Test {
- public static void main(String[] args) {
- // 定义类B对象,并调用类B中的方法func
- A.B b = new A.B(); //被静态修饰过的内部类,用这种方式来创建对象
- b.func();
- }
- }
- class A {
- int x = 1;
- // 定义内部类B,并用static修饰
- static class B {
- int x = 2;
- void func() {
- int x = 3;
- System.out.println(x);// 输出B类方法func中的变量x
- }
- }
- }
复制代码
|