java - 如何创建正确的 Java 实例?

标签 java class instantiation

我已经创建了一个公共(public)类 helloworld,并且正在尝试为类 Abc 创建一个对象。我已经使用“new”关键字为 Abc 类创建实例。但我仍然收到错误“非静态变量不能从静态上下文引用”。在第四行。 我该如何解决这个问题?

public class helloworld {
    public static void main (String[] args)
    {
        Abc obj = new Abc();

    }
    class Abc
    {
        int i;

    }
}

最佳答案

为简单起见,将 Abc 类放在不同的文件中,并将其设为公共(public)类。

helloworld.java

public class helloworld {
    public static void main (String[] args)
    {
        Abc obj = new Abc();

    }
}

Abc.java

public class Abc
{
    int i;

}

或者您可以将 Abc 类声明为 static:

public class helloworld {
    public static void main (String[] args)
    {
        Abc obj = new Abc();

    }
    static class Abc
    {
        int i;

    }
}

创建内部类时,它遵循与类成员相同的规则:类的静态成员不能直接访问实例成员。因此,您需要将 Abc 声明为静态类。

PS:请使用 CamelCasing 约定来命名您的类。例如:使用 HelloWorld 而不是 helloworld

<小时/>

希望这有帮助!

关于java - 如何创建正确的 Java 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44108301/

相关文章:

java - 在数组中的同一索引处保存多个值

java - 方法接受 List<String>,需要返回 List<String> 的相同实现

php - 在抽象类的静态函数中创建一个新实例

java - java继承枚举值

java - 实例和迭代。哪一个更好?

c# - 如果 .Create() 无法实例化,它应该返回空对象、null 还是抛出异常?

java - 如何在资源包中处理角色星号

java - 从 java 程序更改 Active Directory 用户密码

c++ - C++ 中的链接类?

c++ - 我可以在 C++ 中将类作为对象处理吗