我目前只是在玩弄不同的类来测试它们如何协同工作,但我在 NetBeans 中收到一条我无法解决的错误消息。这是我的代码:
class first_class.java
public class first_class {
private second_class state;
int test_tal=2;
public void test (int n) {
if (n>2) {
System.out.println("HELLO");
}
else {
System.out.println("GOODBYE");
}
}
public static void main(String[] args) {
state.john();
TestingFunStuff.test(2);
}
}
二等舱
public class second_class {
first_class state;
public int john () {
if (state.test_tal==2) {
return 4;
}
else {
return 5;
}
}
}
显然我不能在我的主类中运行方法“john”,因为“不能从静态上下文中引用非静态变量状态”和方法“test”,因为“非静态方法 test(int) 不能从静态上下文中引用”。
这到底是什么意思?
netbeans 中显示的错误屏幕截图:http://imageshack.us/photo/my-images/26/funstufffirstclassnetbe.png/
最佳答案
这意味着如果您要从静态方法中使用它,则必须将 state
声明为静态成员,或者您需要一个 first_class
实例可以访问非静态成员。在后一种情况下,您需要提供一个 getter 方法(或将其公开,但 ew)。
此外,您没有实例化 second_class
的实例,因此在编译之后,您将得到一个 NullPointerException
:static or not,需要一个instance 以访问实例方法。
我可能会建议遵循 Java 命名约定,使用 camelCase
而不是 under_scores
,并以大写字母开头类名。
关于java - 需要帮助让两个类互相帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696715/