Java 在非静态嵌套类中使用非静态数据成员withourt Using object

Java 在非静态嵌套类中使用非静态数据成员withourt Using object,java,nested-class,non-static,Java,Nested Class,Non Static,我尝试创建一个非静态嵌套类,并尝试在非静态内部类中使用外部类的非静态数据成员。我不知道,如果x是非静态的,我如何在没有对象的情况下使用它。请告诉我答案?您不能在没有对象的情况下使用它。内部(非静态嵌套)类引用外部对象,使用外部对象的x。内部类只是对外部类进行隐式引用的语法糖。在内部(javac编译后),您的类internal如下所示: class Outer { int x=10; class Inner { void show() {

我尝试创建一个非静态嵌套类,并尝试在非静态内部类中使用外部类的非静态数据成员。我不知道,如果x是非静态的,我如何在没有对象的情况下使用它。请告诉我答案?

您不能在没有对象的情况下使用它。内部(非静态嵌套)类引用外部对象,使用外部对象的
x

内部类只是对外部类进行隐式引用的语法糖。在内部(javac编译后),您的类
internal
如下所示:

class Outer
{
    int x=10;
    class Inner
    {
        void show()
        {
            System.out.println(x);
        }
    }
    public static void main(String args[])
    {
        Outer obj=new Outer();
        Inner obj1=new Outer().new Inner();
        obj1.show();
    }
}

当你写
Inner时,obj1=newouter().newinner()编译器将其更改为类似
Inner obj1=new-Inner(new-Outer())

从您的问题中不太清楚问题是什么。请你澄清一下好吗?你知道什么是内部类吗?我的问题很简单,如果x是非静态的,那么我如何在没有任何对象的情况下使用它。还有@SotiriosDelimanolis我知道什么是嵌套类,这就是我问这个问题的原因。@ManishKumar答案很简单:
internal
也不是静态的。但我已经读到内部类没有静态的与外部类的关系,因此它们如何引用外部类嵌套类不存在。@SotiriosDelimanolis Static nested不存在。内部(非静态嵌套)do。
static class Inner
{
    private final Outer this$0;

    public Inner(Outer outer) {
        this$0 = outer;
    }

    void show()
    {
        System.out.println(this$0.x);
    }
}