2017-10-12 1 views
-3

내가 찾은 두 클래스를 사용하는 동안 그 각각의 클래스에 대한 객체를 생성하기위한 Java의 GregorianCalendar 클래스와 Calendar 클래스의 차이점은 무엇입니까?

GregorianCalendar today = new GregorianCalendar(); 

처럼 달력 오늘 = Calendar.getInstance();

왜 그렇습니까? 그리고 다른 것을 사용하면서 얻을 수있는 이점은 무엇입니까?

+0

캘린더는 추상 클래스입니다. 인스턴스를 얻으려면 실제 구현이 필요합니다. GregorianCalendar는 [그레고리력] (https://en.wikipedia.org/wiki/Gregorian_calendar)의 구현입니다. Calendar.getInstance()는 로케일에 따라 GregorianCalendar, BuddhistCalendar 또는 JapaneseImperialCalendar를 리턴합니다. –

+0

GregorianCalendar 지원 윤년은 매 4 년마다 2 월 29/2 일에 추가 하루를받는 것을 의미합니다. –

답변

0

대부분의 로캘에서 Calendar.getInstance()을 쓸 때 GregorianCalendar 개체가 생성됩니다. 그러나 몇 가지 예외가 있습니다. 로케일은 JapaneseImperialCalendar 또는 BuddhistCalendar으로 설정 될 수 있습니다.

실제로 CalendarGregorianCalendar 일 경우, new GregorianCalendar()을 명시 적으로 쓸 수 있습니다. 그러나 일반적으로 JVM이 로케일을 기반으로 올바른 종류의 Calendar을 선택하게하는 것이 더 좋은 형태로 간주됩니다. 즉, Calendar.getInstance()을 작성하고 다른 달력 유형 중 하나를 사용할 가능성을 대비해야합니다.

Calendar 클래스에는 getInstance()에 대해이란이나 사우디 아라비아에서 사용되는 것과 같은 다른 유형의 달력을 반환하는 논리가 없습니다.

0

캘린더 클래스는 추상 클래스 일뿐입니다. 추상적으로 만드는 주된 이유는 전 세계에서 여러 유형의 캘린더를 사용할 수 있다는 것입니다.

관련 문제