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

Podobne dokumenty