Java 如何制作setStudentName方法?

Java 如何制作setStudentName方法?,java,string,Java,String,我应该用java创建一个学生帐户(我对java非常陌生,所以请不要炒我鱿鱼)。除了我需要设置一个名称/学位课程(我相信是字符串)之外,一切都很好。顺便说一下,我用的是BlueJ 我试着用void代替string,但我遇到了同样的问题。在方法开始之前,我也这样做了: private String studentName; public String setStudentName (String setStudentName) { return studentName = setStuden

我应该用java创建一个学生帐户(我对java非常陌生,所以请不要炒我鱿鱼)。除了我需要设置一个名称/学位课程(我相信是字符串)之外,一切都很好。顺便说一下,我用的是BlueJ

我试着用void代替string,但我遇到了同样的问题。在方法开始之前,我也这样做了:

private String studentName;
public String setStudentName (String setStudentName) {
    return studentName = setStudentName;
}

我只想设置学生名称以便使用它,但是如果我尝试运行它,会出现以下错误:“错误:找不到符号-变量Robin”Robin是我尝试输入的名称。

您的类和方法应该如下所示:

public final class Student {
    private String studentName;

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
   }
}
然后,您可以像这样使用您的类:

public static void main(String[] args) {
    Student student = new Student();
    student.setStudentName("Robin");
    System.out.println(student.getStudentName());
}

查看一下如何编写类的官方信息。

只想总结上面的所有回答,您必须编写
这个。studentName=studentName
而不是
studentName=studentName
,因为在您的上下文中,您既有方法类字段,也有方法参数
studentName
,因此,如果您在方法
studentName
中编写代码,则可以使用方法参数
this
是指向“类实例本身”的链接,
this.studentName
准确调用类字段


另一个解决方案是将
studentName
方法参数重命名为,例如
newStudentName
,这样它就不会与类字段冲突,afterwords
studentName=newStudentName
将按照您的预期工作。

设置程序不会返回任何内容。将退货类型更改为
void
,并删除
退货
。您可能还缺少字符串周围的引号,因此您没有编写“Robin”,而是编写了
Robin
(这将查找一个名为Robin的变量,该变量不存在)。听起来好像您不小心在源代码窗口而不是控制台窗口中键入了“Robin”。是的,这是经常发生的,即使是我们这些老家伙(叹气)@Kayaman,一个二传手可以返回一些东西,如果你定义它的话。通过这样做,您可以获得方法链功能。@user2342558 fluent builders是一回事,但JavaBean setter不会返回任何内容。在我看来,您需要添加更多代码来全面解释您的问题,因为它似乎与set方法无关,所以我尝试了它。。。同样的问题。我以前使用过的getStudentName方法,如果使用它,会得到'null'作为名称。为什么要在studentName之前加上“this.”?我在其中加了
this
,这样Java就知道它引用的是字段
studentName
(第二行中的一个),而不是同名的
setStudentName
方法的参数。您可能会得到
null
,因为在调用
getStudentName
之前必须先使用
setStudentName
。否则,当调用
getStudentName
时,变量将不会初始化,因此将为
null
@rxbxi我添加了一个如何使用这些方法的示例。我将尝试一下。。。我会告诉你它是否对我有用(Y),所以我想我是自己想出来的。。。我的代码也能工作,我想,我所要做的就是将名称(使用该方法时)写入这些“”内容。。。xd就是这样:“罗宾”