Programowanie w języku Java - Konstruktory
Transkrypt
Programowanie w języku Java - Konstruktory
Programowanie w języku Java Konstruktory v1.00 130203 Konstruktory W momencie tworzenia obiektu danej klasy wywoływana jest specjalna metoda zwana konstruktorem. Jeśli nie napiszemy tej metody, to kompilator Java sam dostarczy domyślny konstruktor. Konstruktor musi: mieć taka samą nazwę jak klasa; nie zwracać żadnej wartości, ale być zadeklarowany bez słowa kluczowego void. Przykład konstruktora: Kolo (double x, double y, double r) { this.r = r; this.x = x; this.y = y; zSrodek = z; licznikKol++; } Definicja i deklaracja obiektu klasy Kolo wygląda następująco: Kolo mojeKolko = new Kolo (2.0,0.0,1.0); Deklaracja obiektu klasy Kolo: Kolo kolko; Należy zwrócić uwagę na wyrażenie nowekolko = kolko; Nie tworzy ono nowego obiektu, a jedynie wskaźnik wskazujący na ten sam obiekt klasy Kolo co kolko. Przeciążanie metod Przeciążanie metod jest to mechanizm pozwalający na definiowanie różnych metod o tej samej nazwie. Metody te różnią się od siebie jedynie listą parametrów. Nazwa metody wraz z typami i kolejnością argumentów tworzą tak zwaną sygnaturę metody. Sygnatura pozwala kompilatorowi rozpoznać, która metoda ma być użyta. Typ zwracanego wyniku nie ma wpływu na sygnaturę. Wynika z tego, że w momencie wywołania metody nie wiadomo jaki jest typ zwracanego wyniku. Przeciążanie metod jest często wykorzystywane do przeciążania konstruktorów. 1z2 Programowanie w języku Java Konstruktory v1.00 130203 Przykład konstruktora klasy Kolo o promieniu Kolo (double x,double y) { this.x = x; this.y = y; r = 1; liczikKol++; } A ten konstruktor jest niedozwolony, bo istnieje już konstruktor z poprzedniego przykładu z tym samym zestawem parametrów: Kolo (double r, double x) { this.r = r; this.x = x; y = 1; licznikKol++; } Aby ten zadziałał można by jeden z parametrów przekazać przez float. Zadanie Do zadania z poprzedniej lekcji dopisać trzy konstruktory, które pokażą przeciążanie konstruktorów. 2z2