簡體   English   中英

(期望的標識符)getter / setter和對象

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

我的程序有問題。 當我嘗試以下編譯時,我僅收到以下消息:

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

所以我的代碼:

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

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的值。

我為什么不能那樣做呢?

感謝您的幫助。 :) 謝謝

對於方法,傳入的參數必須具有聲明的值。

在這種情況下,為字符串。 因此,您需要將方法更改為此:

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

在此處詳細了解什么是Java方法以及如何創建方法: http : //www.tutorialspoint.com/java/java_methods.htm

將settName更改為

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

由於您的目標是:

我的目標是將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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM