【问题标题】:(identifier expected) getter/setter and objects(需要标识符)getter/setter 和对象
【发布时间】:2015-01-21 15:42:16
【问题描述】:

我的程序有问题。当我尝试编译以下内容时,我只收到消息:

Tutorium.java:15: error: <identifier> expected
    public void settName(vorlesung.lectureName) {
                                              ^

所以我的代码:

教程.java

public class Tutorium {
private Vorlesung vorlesung;
public String tName;
private int tNumber;


public int gettNumber() {
    return this.tNumber;
}

public String gettName() {
    return this.tName;
}

public void settName(vorlesung.lectureName) {
    this.tName = vorlesung.lectureName;
}

public String toString() {
    return (this.tName + ", " + this.tNumber);
}

public Tutorium(int tNumber){
    this.tNumber = tNumber; } }

Vorlesung.java

public class Vorlesung {
public String lectureName;
private int lectureNumber;
private int lecture;
private Dozent dozent;
private String lecturerlName;

public String getlectureName(){
    return this.lectureName;
}

public int lectureNumber(){
    return this.lectureNumber;
}

public int lecture(){
    return this.lecture;
}

public String getlecturer(){
    this.lecturerlName = dozent.lecturerlName;
    return this.lecturerlName;
}

public String toString() {
    return (this.lectureName + ", " + this.lectureNumber);
}

public Vorlesung(String lectureName, int lecture) {
    this.lectureName = lectureName;
    this.lecture = lecture +1;
    this.lectureNumber = this.lecture -1;
    this.lecturerlName = lecturerlName;
}}

我的主要方法:

public class MainVorlesung {
public static void main(String[] args) {
    Student student = new Student("STUDENTNAME", "STUDENTLASTNAME", 178, 1);
    Vorlesung vorlesung = new Vorlesung("Programmieren", 13341);
    Tutorium tutorium = new Tutorium(3);
    Dozent dozent = new Dozent("LECTURERFIRSTNAME", "LECTURERLASTNAME", 815);

    System.out.println(student.toString());
    System.out.println(vorlesung.toString());
    System.out.println(tutorium.toString());
    System.out.println(dozent.toString());

}}

我的目标是设置 tName 的值等于 vorlesung.lectureName 的值。

为什么我不能那样做?

感谢您的每一次帮助。 :) 谢谢

【问题讨论】:

  • settName(vorlesung.lectureName) { ??这是想做什么?当你把那个奇怪的方法参数放在那里时,你想到了什么——它是什么?那不应该是settName(String name) {吗?
  • 它的效果比你那里的要好得多,相信我。您的参数声明不是有效的 Java。您需要显示该尝试,因为您刚刚发布的错误消息与我提到的代码不匹配。
  • 请解释"does not work"。这不是很有用,也没有为我们提供足够的信息来帮助您。
  • 不要编辑您的问题,使之前版本的问题的现有答案无效。

标签: java object setter getter


【解决方案1】:

对于方法,您传入的参数必须具有声明值。

在这种情况下,一个字符串。所以你需要把你的方法改成这样:

public void settName(String newLectureName) {
    this.tName = newLectureName;
}

在此处阅读有关什么是 java 方法以及如何创建方法的更多信息:http://www.tutorialspoint.com/java/java_methods.htm

【讨论】:

    【解决方案2】:

    将 settName 更改为

    public void settName(String name) {
        this.tName = name;
    }
    

    【讨论】:

      【解决方案3】:

      因为你的目标是:

      我的目标是设置 tName 的值等于 vorlesung.lectureName 的值。

      您应该完全摆脱 setName 方法,因为它将完全依赖于 vorlesung 字段,因此不应更改。您还应该去掉 tName 字段,而是将 getName() 更改为:

      public class Tutorium {
          private Vorlesung vorlesung;
          // public String tName;  // get rid of
          private int tNumber;
      
      
      
          public String gettName() {
              if (vorlesung != null) {
                  return vorlesung.getlecturer();
              }
      
              return null; // or throw exception
          }
      
          // *** get rid of this since you won't be setting names
          // public void settName(Vorlesung vorlesung) {
          //     this.tName = vorlesung.lectureName;
          // }
      

      我刚刚注意到您的 Tutorium 类没有并且绝对需要 setVorlesung(...) 方法。

      public void setVorlesung(Vorlesung vorlesung) {
          this.vorlesung = vorlesung;
      }
      

      【讨论】:

      • @peter87:它应该是getlecturer()。这是来自 Vorlesung 类的方法。最重要的是,您的班级需要一个 setVorlesung(...) 方法。
      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2020-10-11
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多