Java内部类为啥不能在主方法调用

Java内部类为啥不能在主方法调用

问题描述:

class A{
class B(){
void b(){
System. out.println("内部类b");
}
}
}

public class C(){
public static void main(String[] args){
A a = new A();
a.B b = new a.B(); //为什么不能用这种方式调用
}
}

因为你写的不对,大哥类名定义能加括号吗?

img

正确应该是

img


正确代码如下

class A{
    class B{
        void b(){
            System. out.println("内部类b");
        }
    }
}
class C{
    public static void main(String[] args){
        A.B b = new A().new B(); //为什么不能用这种方式调用
    }
}

B是A的内部类,只能在A的内部使用。