4

私は始めたばかりで、コードを書いたときにEclipseに赤い警告が表示されないため、本当に混乱していますが、プログラムを実行すると機能しません。質問は:

従業員 ID と従業員の姓名を表示するプログラムを作成します。2 つのクラスを使用します。最初のクラスには、従業員データと、ID と名前を設定する別のメソッドが含まれています。もう 1 つのクラスは、従業員用のオブジェクトを作成し、そのオブジェクトを使用して set メソッドを呼び出します。複数の従業員を作成し、データを表示します。

私のコードは次のとおりです。

public class Employee {
    String lastName = null; 
    String firstName = null; 
    double ID; 

    public Employee(String lastName, String firstName, double ID){
        this.lastName = lastName; 
        this.firstName = firstName; 
        this.ID = ID; 
    }

    public String empStat(){
        return "Last Name: " + lastName + "First Name: " + firstName + "ID" + ID; 
    }

}

 public class MainEmployee {
   public static void main(String args[]){

   Employee nub1 = new Employee ("Griffin", "Peter", 000001); 
   System.out.println(nub1);
   Employee nub2 = new Employee ("Griffin", "Lois", 000002); 
   System.out.println(nub2);
   Employee nub3 = new Employee ("Griffin", "Stewie", 000003); 
   System.out.println(nub3); 
   Employee nub4 = new Employee ("Griffin", "Brian", 000004); 
   System.out.println(nub4);


 }
}

そしてそれがするのは表示だけです

従業員@523ce3f
Employee@71b98cbb
社員@4cc68351
従業員@ 7cd76237

誰かが理由を教えてもらえますか?

4

4 に答える 4

10

変化する

public String empStat()

@Override
public String toString()

ドキュメントで仕組みtoString()(およびEmployee@523ce3fが表示される理由)を参照してください

System.out.println(nub1);メソッドを使用するnub1.toString()と、暗黙的に呼び出されます。

于 2013-08-27T04:12:09.597 に答える
0

toString() メソッドをオーバーライドする必要があります。これは、オブジェクトがオブジェクトの文字列を返す必要があるときにいつでも呼び出されます。デフォルトでは、オブジェクトの一意の内部表現 (文字列形式) である 'Employee@523ce3f' を受け取ります。

String を返すメソッドを作成するだけでは、これは実行できません。

toString() メソッドの変更をオーバーライドするには:

public String empStat()

@オーバーライド
パブリック文字列 toString()
于 2013-08-27T04:19:59.927 に答える