简体   繁体   English

(期望的标识符)getter / setter和对象

[英](identifier expected) getter/setter and objects

I've got a problem with my programm. 我的程序有问题。 When i try to compile following i just receive the message: 当我尝试以下编译时,我仅收到以下消息:

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

So my Code: 所以我的代码:

Tutorium.java Tutorium.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 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;
}}

My Main-Method: 我的主要方法:

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());

}}

My goal is to set the value of tName equal the value of vorlesung.lectureName. 我的目标是将tName的值设置为vorlesung.lectureName的值。

Why can't i do this that way? 我为什么不能那样做呢?

I appreciate every help. 感谢您的帮助。 :) Thanks :) 谢谢

For methods, the arguments that you pass in must have a declared value. 对于方法,传入的参数必须具有声明的值。

In this case, a String. 在这种情况下,为字符串。 So you need to change your method to this: 因此,您需要将方法更改为此:

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

Read more about what a java method is and how to create one here: http://www.tutorialspoint.com/java/java_methods.htm 在此处详细了解什么是Java方法以及如何创建方法: http : //www.tutorialspoint.com/java/java_methods.htm

Change settName to 将settName更改为

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

Since your goal is: 由于您的目标是:

My goal is to set the value of tName equal the value of vorlesung.lectureName. 我的目标是将tName的值设置为vorlesung.lectureName的值。

You should get rid of the setName method entirely since it will depend entirely on the vorlesung field and so should not be changeable. 您应该完全摆脱setName方法,因为它完全取决于vorlesung字段,因此不应更改。 You should also get rid of the tName field, and instead change getName() to: 您还应该摆脱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;
    // }

I have just now noticed that your Tutorium class does not have and absolutely needs a setVorlesung(...) method. 我刚刚注意到,您的Tutorium类没有并且绝对需要setVorlesung(...)方法。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM