gpt4 book ai didi

java - java和c#之间的静态上下文差异无法引用非静态变量

转载 作者:行者123 更新时间:2023-12-01 14:11:27 25 4
gpt4 key购买 nike

这个网站上有很多关于此的问题。我浏览了所有这些内容以及互联网,但没有找到针对我的特定问题的解决方案(或者无法了解它们与该问题的关系)。另外,这里的独特之处在于这是一个 java 特定问题,不适用于 c#。我在这里做了一些非常简单的事情(在java中),创建一个像这样的类 -

public class asdf{
public int aa;
public int bb;
public asdf(int i,int j){
aa=i;
bb=j;
}
}

现在我尝试从另一个类的 main 方法实例化它 -

asdf aaaa = new asdf(1,2);

这是测试类中的完整代码 -

public class test2 {
public class asdf{
public int aa;
public int bb;
public asdf(int i,int j){
aa=i;
bb=j;
}
}
public static void main(String[] args){
asdf aaaa = new asdf(1,2);
}
}

这一行给了我错误 - 不能从静态上下文引用非静态变量。这里的静态是什么?主要方法位于一个非静态的类中,所有变量都不是静态的,并且我正在创建一个实例。所以有什么问题?另请注意,这在 C# 中运行得非常好。所以,这似乎是 Java 特有的事情。

最佳答案

在您了解有关内部类和静态内部类的所有信息之前,最好在单独的文件中定义每个类。将 asdf 类保留在其自己的文件中(请在类名开头使用大写字母)并将其从 test2 类中删除。运行 test2 类,这应该可以正常工作,而无需将任何内容声明为静态。

开始阅读有关内部类的内容后,请回到此问题并重试。

关于java - java和c#之间的静态上下文差异无法引用非静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com