【发布时间】:2017-08-22 11:55:29
【问题描述】:
我正在创建一个简单的 Jave 控制台应用程序。所以我在不同的文件中使用了几个类。我需要为类实例设置一些参数并稍后检索它。但它给了我以下错误。请帮我解决它。
主类
public class Main {
private Student student = new Student();
public static void main(String[] args) {
student.setName("John");
//Java: non-static variable student cannot be referenced from a static context
}
}
学生班
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
name = name;
}
}
如何避免这个问题?请帮忙
【问题讨论】:
-
函数
main中没有Main的实例。 -
将变量 student 声明为静态
-
这是一个经典的新手错误,可以直接从类中调用
static方法。任何非静态的东西都需要从类的实例对象中调用。您的字段private Student student = new Student();仅存在于 Main 的实例对象中。喜欢: public class Main { private Student student = new Student(); public static void main(String[] args) { Main main = new Main(); main.student.setName("约翰"); } }
标签: java class static console-application