无法从main访问非静态方法(构造函数)(尝试实例化)

时间:2017-07-21 09:51:48

标签: java constructor static non-static

我已经进行了彻底的搜索,我知道你必须首先在静态方法main()中实例化一个对象,然后才能访问它的非静态变量或方法。 但是,我相信我已经这样做了,所以我无法理解在这里获取“无法从静态上下文引用的非静态变量”的问题。

我刚刚开始尝试学习java,但是这个基本的构造函数不应该工作吗?

public class Main 
{
    public static void main(String[] args) 
    {
        A outer = new A(); //<-- Error here
    }

    class A 
    {      
        A()
        {
            System.out.println("I'm from outer class A");
        }
    }
}

如果我声明它是静态的,它将实例化A类,但我不需要这样做,因为我已经创建了该对象。如果我只有一个空的构造函数,它也不起作用。

如果有人可以提供帮助,我将非常感激。我知道这是一个非常简单的错误,但我一直在搜索它并且无法解决它。

1 个答案:

答案 0 :(得分:0)

我看到现在发生了什么。 我做了#34; A&#34; Main内部的类,这是一个错误 - 它应该在外面。换句话说,我错过了一个支架。

我正在关注有关嵌套类的教程(类&#34; B&#34;在里面&#34; A&#34;但我为了这篇文章的目的删除了它。)

这是一个愚蠢的错误,感谢耐心。