Java 外部类如何能够直接访问内部成员类

Java 外部类如何能够直接访问内部成员类,java,inner-classes,Java,Inner Classes,当我们定义内部类时,我理解static内部类通过外部类访问,内部成员类通过外部类的实例存在 令人困惑的是,如果我想保存非私有内部成员类的实例,那么变量声明如下: OuterClass.InnerClass innerObject = outerObject.new InnerClass(); 外部类如何能够像这样引用内部成员类?这里发生了什么 示例代码: public class NestedClasses { public static void main(String[] args)

当我们定义内部类时,我理解
static
内部类通过外部类访问,内部成员类通过外部类的实例存在

令人困惑的是,如果我想保存
非私有
内部成员类的实例,那么变量声明如下:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();
外部类如何能够像这样引用内部成员类?这里发生了什么


示例代码:

public class NestedClasses {
  public static void main(String[] args) {
    A.B b = new A().new B();   // <- How A is directly accessing B, B is not defined as static.
    A.StaticClass staticClass = new A.StaticClass();
  }
}

class A {
  static int x;
  int y;

  A() {
    System.out.println(this.getClass().getName());
  }
  static class StaticClass {
    StaticClass() {
      System.out.println(this.getClass().getName());
    }
  }
  class B {
    B() {
      System.out.println(this.getClass().getName());
    }
  }
}
公共类嵌套类{
公共静态void main(字符串[]args){

A.B B B=new A().new B();//你是在问简单类型名
OuterClass.InnerClass
?这只是简单的命名语法。@SotiriosDelimanolis是的。@SotiriosDelimanolis明白了。谢谢。你为什么用对象实例调用构造函数?
new A().new B();