2017-01-26 2 views
0

3 가지 수업이 있습니다. 사람, PersonProgram (주) 및 날짜. 날짜 클래스에는 일, 월 및 연도의 3 가지 변수가 들어 있습니다. Firstname lastname 중간의 첫 번째 달의 형식으로 문자열을 반환하는 Person 클래스의 메서드를 만들려고합니다. Person 클래스의 이름, 성, 및 초기 중간되는 부분 때문에 내가 this.middleinitial 후다른 클래스의 객체에서 개별 변수에 액세스 하시겠습니까?

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

가지고, 내가 하루 Date 클래스, 월, 년에서 개별 변수를 호출하는 데 사용할 수있는 구문이있다? 나는 지금까지 시도한 것과 함께 "캔트 찾기 심볼"을 얻는다. 그런 식으로 Date의 형식을 지정하는 Date 클래스의 다른 메서드를 만들어야하고 Person의 메서드에서이 메서드를 호출해야합니까?

+2

미안하지만 ?? 오류 ** 및 ** 정확한 ** 오류 메시지를 제공하는 ** 모든 ** 게시물을 보내주십시오. –

답변

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 { 

. 
. 

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

} 

이 이러한 변수를 사용하는 Date 클래스 대신 Calendar 및 SimpleDateFormat을 사용하여 날짜를 형식화하는 것이 더 좋을지 만 현재 상황에서는 이것이 괜찮은 것 같습니다.

나는이 도움이되기를 바랍니다, 복근!

0

날짜가 birthDate 또는 hireDate와 같은 Person에 관한 것이면 각 인스턴스의 다른 멤버 변수는 firstName 및 lastName과 동일해야합니다.

나만의 날짜 클래스를 만들 필요가 없습니다. Java 8 이상에 내장 된 클래스 LocalDate을 사용하면 시간대없이 시간대없이 날짜 만 표시 할 수 있습니다.

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

그런 다음 그 값을 나타내는 String 표현을 생성하는 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

감사의 말을 전했습니다. 전에 게터를 제대로 부르지 않았어. –

관련 문제