0
package wr3;

public class Person {
    private String name;
    private String id;
    private String bday;
    private String address;

    public String getName(){
        return name;
    }

    public String getID(){
        return id;
    }

    public String getBday(){
        return bday;
    }

    public String getAdd(){
        return address;
    }


    public void equals(){
        super.equals(id);
    }
    @Override
    public String toString(){
        return(name + bday + id + address);
    }
}

package wr3;

public class Test {
    public static void main(String[] args){
        String name = "Claude Rhay Torre";
        String name2 = "Bea Señerpida";
        String id = "10302993";
        String id2 = "11102825";   
        String bday = "06/201993";
        String bday2 = "11/17/1994";
        String address = "BF Better Living Basak LLC";
        String address2 = "F Martyr St Poblacion LLC";
        boolean eq;

        System.out.println(name.toString());
        System.out.println(id.toString());
        System.out.println(bday.toString());
        System.out.println(address.toString());
        System.out.println();

        System.out.println(name2.toString());
        System.out.println(id2.toString());
        System.out.println(bday2.toString());
        System.out.println(address2.toString());


        eq = id.equals(id2);
        System.out.println("\nDo they have the same ID number? " + eq );

    }
}

だから私はこのコードを持っています。そして、私もこの問題を抱えています。

  • A. オブジェクトクラス
    1. java.lang パッケージの Object クラスを調べてください。
    2. そのすべての方法を理解してください。
    3. 次の要件を持つ Person クラスを作成します
      。カプセル化を実装する
      b. フィールドは、名前、ID (識別番号)、誕生日、住所です。
      c. Object クラスの equals( ) メソッドをオーバーライドするメソッド。IDが同じなら二人は平等です。
      d. Object クラスの toString( ) メソッドをオーバーライドするメソッド。Person オブジェクトの ID、名前、誕生日、住所を表示します。
    4. Person オブジェクトを作成し、equals( ) および toString( ) メソッドを適切に呼び出すテスト クラスを作成します。

私の質問は、これら 2 つのクラスは関連していますか? つまり、 Test クラスで呼び出された「toString」および「equal」メソッドは、Person のクラスにあるものですか? それともObject クラスの"toString" と "equal"メソッドですか?

Object クラスでequalsおよびtoStringクラスをオーバーライドするにはどうすればよいですか?

4

1 に答える 1

0

メソッドを別のクラス ( など) から継承する場合、メソッドpublic String toString()をオーバーライドするために必要なことは、クラスでObject独自のメソッドを定義することだけです。public String toString()コードで実際にそれを行い、toString()のすべてのインスタンスを正常にオーバーライドしましたPerson

期待する結果が得られない理由は、呼び出しているメソッドtoString()とメソッドがクラスからではなく、クラスからのものだからです。これは、オブジェクトではなくオブジェクトでそれらを呼び出しているためです。これらの 2 つのクラスは階層的に関連付けられていません (共通の祖先は別として)。equals()StringPersonStringPersonObject

代わりTestに、次のようになります。

    Person p1 = new Person();
    p1.name = "Claude Rhay Torre";
    p1.id = "10302993";
    p1.bday = "06/20/1993";
    p1.address = "BF Better Living Basak LLC";

    Person p2 = new Person();
    p2.name2 = "Bea Señerpida";
    p2.id2 = "11102825";   
    p2.bday2 = "11/17/1994";
    p2.address2 = "F Martyr St Poblacion LLC";

    System.out.println(p1.toString());
    System.out.println(p2.toString());
于 2013-08-06T21:39:21.240 に答える