🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153515

Re: Wywołanie metody niestatycznej bez tworzenia obiektu

#153515
From: Arivald
Date: Thu, 19 Jul 2012 10:37
49 lines
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-mail
References: <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