类如何创建适当的Java实例?
我已经创建了一个公共类helloworld,我正在尝试为Abc类创建一个对象。我已经使用“new”关键字为Abc类创建了一个实例。但我仍然得到一个错误“非静态变量不能从静态上下文引用”在第四行。 我该如何解决这个问题
public class helloworld {
public static void main (String[] args)
{
Abc obj = new Abc();
}
class Abc
{
int i;
}
}
# 1 楼答案
首先:听从乔恩的建议。也就是说,通过将内部类更改为静态类,可以快速解决这个特定问题:
我知道这看起来有点奇怪,但如果不先创建外部类的实例,就不能引用常规的内部类。因为主方法是静态的,所以还没有HelloWorld的实例。这意味着它不能仅将常规(实例绑定)内部类引用到静态内部类
可以说,更好的解决方案是在主方法中首先创建类的实例:
# 2 楼答案
Abc
是helloworld
的一个内部类。要实例化它,需要一个helloworld
或者使
Abc
成为一个静态的内部类# 3 楼答案
第一个是正确的,但不容易。对于类似的eclipse项目,这是一种简单的方法
创建ABC类:
在Hello world类中导入并声明静态:
所有你使用的IDE。帮助您导入类:)
# 4 楼答案
为了简单起见,将Abc类放在另一个文件中,并使其成为公共类
地狱世界。java
Abc。java
或者您可以将您的类Abc声明为
static
:创建内部类时,它遵循与类成员相同的规则:类的静态成员不能直接访问实例成员。因此,需要将Abc声明为静态类
注:请使用习惯来命名你的课程。例:用
HelloWorld
代替helloworld
希望这有帮助