java - 需要帮助让两个类互相帮助

标签 java class

我目前只是在玩弄不同的类来测试它们如何协同工作,但我在 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/

相关文章:

java - 创建一个 shell 脚本来运行 Java 程序

Java:返回字段的先前值

Java - 用于扫描仪验证的 while 循环导致输入失败

java - JButton 需要显示图像数组

java - 尝试发送电子邮件时出现奇怪的错误

Python:使用 dict 派生类 - self={ 的奇怪行为

c++ - vector 存储对象

python - 在Python中如何区分这个类中什么是方法,什么是对象构造函数?

java - 如何使用 Drakon 图编辑器真正生成 c#/java 代码?

java - hibernate hql - 执行更新查询后返回更新的行ID列表