0

私はプログラミングが初めてで、助けを借りることができます。「Person」クラスとそれをテストするための TestPerson ファイルを作成しました (はい、これは課題です)。

34 ~ 36 行目 (セッター内) で「識別子が必要です」という 3 つのエラーが発生します。明らかに、これは初歩的なエラーですが、私には理解できないようです。どんな助けでも大歓迎です。前もって感謝します。

/******************************************************************
*     program name:      Person.java
*     author:           Nichol Albertson
*     remarks:          describes a Person object
      Date:             3/26/13
********************************************************************/
import java.text.*;

class Person {
    /**********************************************
     *  Local Variables
     ******************************************/
    private String lastName;
    private String firstName;
    private String birthday;

    /**********************************
        *   constructors - just a method
        ***********************************/

    public Person(String lastName, String firstName) {
        setLastName();
        setFirstName();
        setBirthday();
    }

    public Person(String lastName, String firstName, String birthday) {
        initialize(lastName, firstName, birthday);
    }

    /**********************************
    *   set methods  (setters)
    ***********************************/
    public void setLastName(lastName);
    public void setFirstName(firstName);
    public void setBirthday(birthday);

    /**********************************
    *   get methods  (getters)
    ***********************************/
    public String getLastName() {
        return lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getBirthday() {
        return birthday;
    }

    /*******************************
    * other methods
    ********************************/
    public String getFirstLast() {
        System.out.println(firstName + " " + lastName);
    }

    public String getLastFirst() {
        System.out.println(lastName + ", " + firstName);
    }
}
4

3 に答える 3

4

各セッター メソッドでパラメーターの型を指定する必要があります。タイプは、設定しようとしているインスタンス変数のタイプと一致する必要があります。

さらに、パラメーター値をインスタンス変数に割り当てるセッター メソッドに対して、中かっこ{を含むメソッド本体を提供する必要があります。}

于 2013-03-26T17:29:04.870 に答える
1

次の行が原因でエラーが表示されます:

public void setLastName(lastName);
public void setFirstName(firstName);
public void setBirthday(birthday);

Personではありませabstract classinterface。クラスconcrete class内でメソッドを宣言することはできません。concreteメソッドの本体も提供する必要があります。これは次のように変更できます。

public void setLastName(String lastName){ this.lastName = lastName;}
public void setFirstName(String firstName){ this.firstName = firstName;}
public void setBirthday(String birthday){ this.birthday = birthday;}

さらに、次のメソッドは完全に間違って定義されています。

public String getFirstLast() {
    System.out.println(firstName + " " + lastName);
}

public String getLastFirst() {
    System.out.println(lastName + ", " + firstName);
}

上記のメソッドはどちらも戻り値の型を持ってStringいますが、何も返していません。これはコードのエラーでもあります。それらは次のように定義する必要があります。

public String getFirstLast() {
    return firstName + " " + lastName;
}

public String getLastFirst() {
    return lastName + ", " + firstName;
}
于 2013-03-26T17:29:53.160 に答える
0
public void setLastName(lastName);
public void setFirstName(firstName);
public void setBirthday(birthday);

クラスが通常のクラスである場合、それはインターフェイスでも抽象クラスでもないため、メソッドには本体が必要であり、もう 1 つのポイントは変数 lastName、firstName、および birthday の型について言及する必要があることです。

   public void setLastName(String lastName)
   {
       //method's body
   }
于 2013-03-26T17:32:47.850 に答える