Konstruktory w języku C#
Konstruktor - pierwsza metoda.
Konstruktor jest to specjalna
metoda klasy, która jest
wywoływana jako pierwsza podczas tworzenia obiektu.
Konstruktor ma taką samą
nazwę jak nazwa klasy i nie zwraca żadnych wartości. Klasa może posiadać wiele konstruktorów jednak muszą się one różnić typem lub ilością argumentów.
Konstruktor jest wywoływany za pomocą wyrażenia
new podczas tworzenia obiektu. Konstruktor bardzo często wykorzystywany jest do inicjowania elementów obiektu.
Przykładowy konstruktor:
public class Pojazd
{
public Pojazd()
{
//ciało konstruktora
}
}
Konstruktor możemy stworzyć przy pomocy
snippetu: ctor. Wpisujemy słowo
ctor a następnie klikamy dwukrotnie klawisz:
tab.
Konstruktor domyślny jest to konstruktor, który zostaje utworzony w przypadku nie zdefiniowania żadnego konstruktora.
Właściwości konstruktora domyślnego:
- posiada modyfikator dostępu public,
- nie posiada argumentów,
- inicjuje wartości pół klasy zerem, false lub null w zależności od typu pól,
- ma taka samą nazwę jak nazwa klasy,
- nie zwraca wartości.
Przeciążanie konstruktorów
Podobnie jak metody, konstruktory mogą być przeciążane. Aby przeciążyć konstruktor wystarczy stworzyć kilka konstruktorów różniących się liczba parametrów lub typem przyjmowanych parametrów.
Inicjacja pól klasy
Konstruktor zajmuje się inicjacją pól składowych klasy. W przypadku, gdy pola nie zostaną zainicjowane żadnymi wartościami w konstruktorze, domyślnie zostanie im przypisana domyślna wartość, czyli np. 0.
Metody inicjacji pól:
Metoda 1 (przez parametry):
class Liczba
{
private int a, b, c;
public Liczba(int a, int b, int c)
{
this.a = a;
this.b = b;
this.c = c;
}
}
Metoda 2 (przez wartości domyślne):
class Liczba
{
private int a, b, c;
public Liczba()
{
a = 1;
b = 2;
c = 3;
}
}
Inicjacja poprzez listę inicjacyjną
Możliwe jest
wywołanie innego konstruktora w miejsce konstruktora domyślnego, nazywamy takie rozwiązanie
listą inicjacyjną. Konstruktor bezparametrowy, który wywoływany jest podczas tworzenia obiektu sam wywołuje konstruktor z parametrami domyślnymi.
Przykład:
class Liczba
{
private int a, b, c;
public Liczba() : this(1,2,3)
{
}
public Liczba(int a, int b, int c)
{
this.a = a;
this.b = b;
this.c = c;
}
}
Kolejność wywoływania konstruktorów:
- konstruktory klas bazowych w kolejności w jakiej są dziedziczone (na początku konstruktor klasy bazowej dla wszystkich pozostałych dziedziczących klas, na końcu konstruktor naszej aktualnej klasy),
- konstruktory dla obiektów zadeklarowanych w ciele klasy,
- konstruktor klasy.
Więcej na temat konstruktorów:
http://msdn.microsoft.com/pl-pl/library/ace5hbzh.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):