无法从Student类型静态引用非静态方法getID()

时间:2019-02-05 18:29:04

标签: java

我正在尝试在程序中使用访问器(Set / Get)方法,当我尝试在main方法中使用 Get 方法时,出现此错误:
  无法对类型为Student 的非静态方法getID()进行静态引用。

我不确定如何解决此问题。我是Java编程的初学者。


以下是有问题的特定行:

设置/获取方法:

public void setID (String ID) {this.ID = ID;}
public String getID() {return this.ID;}

错误行:

System.out.println(Student.getID());

任何建议将不胜感激!*

A full picture of my code.

3 个答案:

答案 0 :(得分:4)

尝试这样的事情...

column-count:

请注意,我已经创建了Student的一个实例,并要求该实例返回其ID。 Student.getID()要求Student类返回其ID,这不是您编写的代码,可能不是您想要的代码。

答案 1 :(得分:1)

您应该在实例上调用getID(),而不是类本身。

这是您代码中的一个示例:

Bob.getID(); // instead of Student.getID()

为了提供更多帮助,我建议您在学习 Class / type variable / instance 的概念之前,不要再盲目尝试。

答案 2 :(得分:0)

getId() Student 类的非静态方法,应在对象上调用,而不是在类本身上调用。

要了解, id 实例属性将属于特定学生(例如 Bob Thomas ),因此您应该致电{{1 }}或Bob.getId(),分别赋予Bob或Thomas的 id 属性。