当前位置: 首页 > 知识库问答 >
问题:

无法从Student[duplicate]类型对非静态方法getID()进行静态引用

郎正初
2023-03-14

我试图在我的程序中使用accessors(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());

任何建议都将不胜感激*

我的代码的完整图片。

共有3个答案

孙子民
2023-03-14

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

为了理解,id instance属性将属于特定的学生(比如Bob或Thomas),因此您应该调用Bob。getId()Thomas。getId()分别为您提供Bob或Thomas的id属性。

傅旺
2023-03-14

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

下面是代码中的一个示例:

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

为了更有帮助,我建议你在学习类/类型和变量/实例的概念之前,不要再钻研了。

凌伟泽
2023-03-14

试试这样的东西...

Student aStudent = new Student();
aStudent.setID("2112");
System.out.println(aStudent.getID());

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

 类似资料:
  • 可能重复: “不能从静态上下文引用非静态方法”背后的原因是什么? 不能对非静态方法进行静态引用 不能对非静态字段进行静态引用 我不明白我的代码出了什么问题。 线程“main”java.lang.error中的异常:未解决的编译问题:无法静态引用Two中的非静态方法fxn(int)

  • 问题内容: 我的Android程序中存在旧的“无法对非静态方法进行静态引用”错误,我遇到了一些问题。我正在创建一个掉落游戏(类似于Powder Game),并且创建了一个名为Control的类,以在屏幕底部创建一个带有画笔大小滑块(效果很好)的控件栏,并弹出一个按钮,允许用户选择所选元素的对话框。但是,当我从代码中调用DemoActivity.showDialog(2)时,它将静态引用非静态错误(

  • 问题内容: 到目前为止,我有以下代码: } 当我尝试在末尾设置double 时,出现错误消息“无法对非静态方法进行静态引用”。它说解决方法是也使该方法静态化,但是我的教授告诉我不要将该字段静态化。有一个简单的解决方案我只是想念吗? 问题答案: 静态方法属于该类,非静态方法属于该类的 实例 。 当您从呼叫时,您会收到错误消息,因为它与任何实例都没有关联。 您需要创建该类的实例: 然后,您可以调用实例

  • 我有一个类,其中有一些静态方法和一些非静态方法,所以当我试图从静态方法访问非静态方法时,我会遇到一个著名的错误。每当我搜索这个论坛,我得到的解决方案,当有两个类,从一个你试图达到另一个。我的问题是,如果它们在同一个类中,如何从静态方法调用非静态方法? 我试着用 但是我的方法包含发送Intent和finish(),所以如果我创建的对象不是finish,就不起作用。

  • 问题内容: 我无法编译以下代码: 出现以下错误: 无法从静态内容引用非静态方法calcArea(int,int) 这是什么意思?我该如何解决该问题..? 编辑: 根据您的建议,我创建了一个新的test()实例,如下所示: 这样对吗?如果我这样做有什么区别… 问题答案: Nanne提出的建议绝对可以解决您的问题。但是,我认为如果现在就养成习惯,在学习Java的早期阶段,尝试尽可能少地使用静态方法(例

  • 这是一个代码的一部分,但当我执行时,我得到了一个错误程序是关于线性规划对不起我的英语,或关于愚蠢的问题 “错误:不能从静态上下文引用非静态方法get_total_profity(String)