-2

私は顧客を作ろうとしています。arrayList内に各ユーザー入力を追加し、最後に出力させようとしています。しかし、私の出力は私にいくつかのメモリ位置を与えます。誰かがこれに光を当てることができますか?

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    System.out.println("Enter First Name: ");
    String firstName = input.nextLine();
    System.out.println("Enter Last Name: ");
    String lastName = input.nextLine();
    System.out.println("Enter Home Address: ");
    String homeAddress = input.nextLine();

    Customer cus = new Customer(firstName, lastName, homeAddress);

    System.out.println("\nWelcome: ");
    System.out.print(cus.getFirstName() + cus.getLastName());
    System.out.println("\n Your Shipping Address: ");
    System.out.print(cus.getHomeShippingAddress());

    List<Customer> customer = new ArrayList<Customer>();

    customer.add(cus);

    // Output the list contents
    printList(customer);

}

public static void printList(List<Customer> list) {

    System.out.println("Customers: ");

    for (Customer customer : list) {
        System.out.printf("%s", customer);
    }
    System.out.println();
}

}

ここに画像の説明を入力してください

4

4 に答える 4

4

toStringオブジェクトのメソッドをオーバーライドしCustomerます。

現在のものがデフォルトの実装です。

@ 5c694a18の意味がわからない場合に備えて、これはCustomerオブジェクトのハッシュコードの符号なし16進表現です。

于 2013-01-21T18:45:36.623 に答える
2

オブジェクトを印刷しようとしているので、そのtoString()メソッドに移動します。ObjecttoString()から継承されたメソッドをオーバーライドして、独自のメソッドを実装することをお勧めします。

何かのようなもの:

@Override 
public String toString() {
    StringBuilder result = new StringBuilder();
    //build your string here. 
    //Perhaps by appending the customer's first and last name?
    return result.toString();
}

Objectから継承された、現在表示されているものは次のとおりです。

getClass().getName() + '@' + Integer.toHexString(hashCode())

于 2013-01-21T18:46:04.843 に答える
1

CustomerクラスでtoStringをオーバーライドしないと、 ObjectsのtoStringが呼び出され、次のようになります。NameOfTheClass +"@" +SomeHexNumber.

 return getClass().getName() + "@" + Integer.toHexString(hashCode());

適切なデータを出力するようにオーバーライドtoString() methodします。Customer class以下のようなもの:

public String toString() {
return this.firstName+" " + this.lastName ;
}
于 2013-01-21T18:46:00.663 に答える
1

Customerはオブジェクトです。そのオブジェクトについて必要な値を出力するには、toString() メソッドをオーバーライドする必要があります。

于 2013-01-21T18:46:05.390 に答える