Article View: pl.comp.lang.java
Article #153515Re: Wywołanie metody niestatycznej bez tworzenia obiektu
From: Arivald
Date: Thu, 19 Jul 2012 10:37
Date: Thu, 19 Jul 2012 10:37
49 lines
2495 bytes
2495 bytes
W dniu 2012-07-19 12:03, tomjas pisze:
> Witam.
> Od kilku dni uczę się Javy i utknąłem na wywołaniu metody z klasy
> abstrakcyjnej bez tworzenia rozszerzenia klasy i obiektu. Dlaczego można
> tak:
>
> Calendar d1 = Calendar.getInstance();
> Date d2 = d1.getTime();
>
> czy też stosując Method Chaining:
>
> Date d1 = Calendar.getInstance().getTime();
>
> Przecież metoda getTime() nie jest statyczna, więc należałoby utworzyć
> najpierw obiekt, a wcześniej klasę rozszerzającą abstrakcyjną klasę
> Calendar. Gdzie popełniam błąd w rozumowaniu?
Calendar.getInstance() zwraca konkretny obiekt rozszerzający
abstrakcyjną klasę Calendar.
A kto i kiedy ten obiekt utworzył to jest nieistotne.
Tu akurat zastosowano getInstance() automatycznego tworzenia obiektu
kalendarza zgodnego z Twoim systemem i lokalizacją. Zazwyczaj będzie to
GregorianCalendar, ale w Japoni JapaneseImperialCalendar, a w Tailandii
BuddhistCalendar.
Możesz to przetestować np tak:
Calendar def = Calendar.getInstance();
Calendar jap = Calendar.getInstance(TimeZone.getDefaultRef(), new
Locale("ja", "JA", "JA");
String classDef = def .getClass().getCanonicalName();
String alassJap = jap.getClass().getCanonicalName();
> Swoją drogą - metoda
> getTime() typu Date to inna metoda niż getTime() klasy Date?
Oczywiście. Calendar.getTime() zwraca obiekt Date, na którym możesz
wywołać getTime().
np:
Date timeAsDate = Calendar.getInstance().getTime();
long time = Calendar.getInstance().getTime().getTime();
--
Arivald
Technical Details
Message-ID:
<ju8o21$dmd$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.dialog.net.pl!not-for-mailReferences:
<slrnk0fmrn.qjt.tomjas@krusty.domain.org>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.dialog.net.pl!not-for-mail From: Arivald <arivald_@AT_interia_DOT_.pl> Newsgroups: pl.comp.lang.java Subject: Re: Wywołanie metody niestatycznej bez tworzenia obiektu Date: Thu, 19 Jul 2012 12:37:53 +0200 Organization: Dialog Net Lines: 51 Message-ID: <ju8o21$dmd$1@news.dialog.net.pl> References: <slrnk0fmrn.qjt.tomjas@krusty.domain.org> NNTP-Posting-Host: poczta.pgs-soft.com Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1342694273 14029 62.87.249.67 (19 Jul 2012 10:37:53 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Thu, 19 Jul 2012 10:37:53 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 In-Reply-To: <slrnk0fmrn.qjt.tomjas@krusty.domain.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit