2017-01-26 7 views
0

私は3つのクラスを持っています。 Person、PersonProgram(メイン)、およびDate。日付クラスには、日、月、および年の3つの変数が含まれています。 Personクラスで、firstname lastnameの中間の最初の月の月の形式で文字列を返すメソッドを作成しようとしています。 FIRSTNAME、LASTNAME、およびミドルネームのイニシャルは私がthis.middleinitial後異なるクラスのオブジェクトから個々の変数にアクセスしますか?

return String.format("%s %s %s %s %s %s" this.firstname, this.lastname, this.middleinitial ...) 

を持つPersonクラスの一部であるので、私は月の年、日のDateクラスから個々の変数を呼び出すために使用できる構文がありますか?私はちょうど私がこれまでに試したことと "カンタンのシンボルを見つける"を得る。このようにDateの書式を設定するDateクラスの別のメソッドを作成し、そのメソッドをPersonのメソッドから呼び出す必要がありますか?

+2

すみませんが、何? **エラー**と** exact **エラーメッセージを送信するコードをすべて**送信してください。 –

答えて

0

私は私はあなたが望むものを理解していれば知っているが、この試みてはいけない:あなたのPersonクラスでは

を:

Person(Date date) { 
    this.date = date; 
} 

. 
. 

return String.format("%s %s %s %s" this.firstname, this.lastname, this.middleinitial, this.date.getFormatDate()) 

とあなたのDateクラスに:

Date { 

. 
. 

public void getFormatDate() { 
    return this.day + "/" + this.month + "/" + this.year; 
} 

} 

それこれらの変数を持つDateクラスではなく、日付をフォーマットするためにCalendarとSimpleDateFormatを使用する方が良いでしょうが、現在の状況ではこれは正常です。

私はこの助けを願って、abs!

0

birthDateやhireDateなどのPersonに関する情報がある場合は、firstNameやlastNameのように、各インスタンスの別のメンバ変数を指定する必要があります。

独自の日付クラスを作成する必要はありません。 Java 8以降のクラスに組み込まれたLocalDateを使用すると、時間帯なしでタイムゾーンなしで日付のみを表すことができます。

LocalDate ld = LocalDate.of(2017 , Month.JANUARY , 23); 

次に、DateTimeFormatterクラスを使用して、その値を表す文字列を生成します。そのクラスは自動的にローカライズすることもできます。

DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.CANADA_FRENCH); 
String dateOutput = ld.format(f); 

実際にはLocalDateの各部分を抽出することができます。

int y = ld.getYear(); 
int m = ld.getMonthValue(); 
int d = ld.getDayOfMonth(); 

このような長いテキストを作成する場合は、String.formatを使用しません。 +演算子またはStringBuilder/StringBufferクラスのいずれかの連結を使用します。

StringBuilder s = new StringBuilder(); 
s.append(fName).append(" ").append(dateOutput) ; 
… 
-1
Date date = new Date(...); 
return String.format("%s %s %s %s %s %s" this.firstname, this.lastname, this.middleinitial, date.getYear(), date.getMonth(), date.getDay()); 
+0

これはあなたに感謝しました。私は以前にゲッタを適切に呼んでいませんでした。 –

関連する問題