2012-04-04 25 views
0

ここにはアドレス情報を保持するコンストラクタがありますが、名前、住所、都市、州の郵便番号を保持する文字列を返さなければならない最後の部分に問題があります。それを書く正しい方法は何でしょうか?複数の変数を含む文字列を返すメソッド

パブリッククラスアドレス{

private String name; 
private String address; 
private String state; 
private String city; 
private String zipcode; 

public Address(String name, String address, String state, String city, String zipcode){ 

    this.name = name; 
    this.address = address; 
    this.state = state; 
    this.city = city; 
    this.zipcode = zipcode; 


} 

public Address(){ 

    name = "occupant"; 
    address = " "; 
    state = " "; 
    city = " "; 
    zipcode = " "; 


} 

public void setAddress(String Address){ 

    this.address = Address; 

} 

public void setstate(String state){ 

    this.state= state; 


} 

public void setcity(String city){ 

    this.city = city; 
} 

public void setzipcode(String code){ 

    this.zipcode = code; 

} 

public String getaddress(){ // Return string that contains name and address and city and zipcode 

    return getaddress() + " " + return state + " " + return city + " " + return code; 



} 

}

+0

を使用すると、1つの文字列全体でそれを必要とするか、次の方法でアドレスを印刷するには、静的なユーティリティクラスを追加するのではなくをオーバーライドしますか?それとも、文字列の配列ですか? getaddress()の中で 'getaddress()'を呼び出すのはなぜですか? –

答えて

3
return address + " " + state + " " + city + " " + code; 

いくつかの注意事項:

  • つのみreturn、返すようにオブジェクトが続く、文字列の結果であります連結
  • 連結メソッドを呼び出すgetFullAddress()をゲッターと区別する必要があります。
  • ゲッターとセッターはキャメルケースを取得する必要があります
  • 使用小文字の変数名:setCity()getState()
+1

また、アドレスオブジェクトのtoString – Kevin

+0

はいを​​オーバーライドすることができますが、 '.toString()'は主にデバッグに使用する必要があるため、これを他の目的に使用する必要がある場合は、 – Bozho

0

私はあなたの問題はあなたがgetaddress()の内部ではなくaddress

を使用して getaddress()を呼び出していることだろうと思い

EDIT:Bozhoが指摘しているように、メソッド内でステートメントごとに1つのリターンのみが指摘されています。

0

わかりやすくするために、可変アドレスの名前をstreetに変更します。どんなにしかし、toString()は、私はフィールドのそれぞれにゲッターを追加し、

static String formatAddress(Address address){ 
    final String formatter = "Address\n%s\n%s\n%s, %s %s"; 
    return String.format(formatter, address.getName(),address.getAddress(),address.getCity(), address.getState(), address.getZipcode()); 
} 
+0

明らかに、これは単純なフォーマッタですが、あなたをパスに導くはずです。 – TechTrip

関連する問題