Java - Myśleć jak programista: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Linia 871:
 
=Stwórz swoje własne obiekty=
 
==Definicje klasy i typy obiektów==
Powracamy do początkowych rozdziałów, gdzie określono klasę ''Hello'', która jest również typem obiektu o nazwie ''Hello''. Nie stworzyliśmy żadnych zmiennych o typie ''Hello'', i nie używaliśmy słowa kluczowego <tt>new</tt> do utworzenia obiektów ''Hello''. Ale przecież mogliśmy!<br/>
==Czas==
 
Ten przykład nie ma sensu, ponieważ nie ma żadnego powodu, aby utworzyć obiekt ''Hello''. Niewiele by to dało, jeśli byśmy spróbowali. W tym rozdziale przyjrzymy się definicji klas, które tworzą '''użyteczne''' typy obiektów. <br/><br/>
 
Oto najważniejsze pomysły w tym rozdziale :<br/><br/>
 
Definiowanie nowej klasy tworzy także nowy typ obiektu o tej samej nazwie. <br/>
Definicja klasy jest jakby szablonem dla obiektów: określa, jakie zmienne instancji posiadają obiekty i jakie metody mogą być na nich wywoływane. <br/>
Każdy obiekt należy do pewnego '''typu obiektowego''', to znaczy, że jest instancją pewnej klasy. <br/>
Po użyciu <tt>new</tt>, aby utworzyć obiekt, Java powołuje specjalną metodę zwaną konstruktorem, aby zainicjalizować zmienne instancji. Można tworzyć jeden lub więcej konstruktorów jako część definicji klasy.<br/>
 
Metody, które działają na typie zdefiniowanym są określone w definicji klasy dla danego typu.
Oto niektóre zagadnienia składniowe związane z definicją klas: <br/>
Nazwy klasy (a więc typ obiektów) powinna zaczynać się wielką literą, która pomaga odróżnić je od typów bazowych i nazw zmiennych.
 
Zazwyczaj umieszcza się jedną definicję klasy w każdym pliku; nazwa pliku musi być taka sama jak nazwa klasy, z przyrostkiem .Java. Na przykład klasa <tt>Time</tt> jest określona w pliku o nazwie Time.java. <br/>
W każdym programie, jedna klasa jest oznaczona jako klasa startowa. Klasa startowa musi zawierać metodę o nazwie <tt>main</tt>, czyli tam, gdzie zaczyna się realizacja programu. Inne klasy też mogą mieć metodę o nazwie <tt>main</tt>, lecz te metody nie będą wykonywane.
Po tym przydługawym wstępie, spójrzmy na przykład klasy zdefiniowanej przez użytkownika: Time. <br/><br/>
 
==CzasTime==
==Konstruktory==
==Więcej konstruktorów==