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();