Operator
new
w języku C# pełni kilka kluczowych ról, ale jego podstawowym zastosowaniem jest tworzenie instancji obiektów, czyli alokowanie pamięci dla nowych obiektów i wywoływanie konstruktorów klas. Użycie operatora
new
pozwala na inicjalizację nowego obiektu i jest fundamentalnym elementem programowania zorientowanego obiektowo w C#.
Jak działa new
?
Gdy używamy operatora
new
wraz z nazwą klasy, C# alokuje pamięć na stercie dla nowego obiektu tej klasy i wywołuje konstruktor klasy, aby zainicjalizować nowy obiekt. Konstruktor to specjalna metoda klasy, która może przyjmować argumenty i jest używana do ustawiania początkowych wartości obiektu.
Deklaracja i Użycie
Przykład 1: Tworzenie Instancji Klasy
Rozważmy prostą klasę
Samochod
:
class Samochod
{
public string Marka;
public Samochod(string marka)
{
Marka = marka;
}
}
Tworzenie instancji tej klasy z użyciem
new
:
Samochod mojSamochod = new Samochod("Toyota");
Console.WriteLine(mojSamochod.Marka); // Wyświetli "Toyota"
W tym przykładzie, operator
new
alokuje pamięć dla obiektu
Samochod
i wywołuje jego konstruktor, przekazując „Toyota” jako argument, co inicjalizuje pole
Marka
nowego obiektu.
Przykład 2: Tworzenie Tablic
Operator
new
jest również używany do tworzenia tablic:
int[] liczby = new int[5];
Ta instrukcja tworzy nową tablicę typu
int
o rozmiarze 5. Każdy element tablicy jest automatycznie zainicjalizowany domyślną wartością dla typu, w tym przypadku 0 dla
int
.
Użycie new
do Ukrywania Członków w Dziedziczeniu
Operator
new
może być także używany w definicjach klas do ukrywania członków dziedziczonych z klasy bazowej, które nie są wirtualne. Jest to zaawansowane zastosowanie, które pozwala na zmianę zachowania dziedziczonych metod lub właściwości w klasie pochodnej:
class Bazowa
{
public void Pokaz()
{
Console.WriteLine("Bazowa::Pokaz");
}
}
class Pochodna : Bazowa
{
public new void Pokaz()
{
Console.WriteLine("Pochodna::Pokaz");
}
}
W tym przypadku, metoda
Pokaz
w klasie
Pochodna
ukrywa oryginalną metodę
Pokaz
z klasy
Bazowa
. Kiedy użyjemy obiektu
Pochodna
, zostanie wywołana metoda
Pokaz
z klasy
Pochodna
.
Podsumowanie
Operator
new
w C# jest niezwykle ważny i używany w różnych kontekstach. Jego główną rolą jest tworzenie nowych instancji obiektów i tablic, ale ma również inne zastosowania, takie jak ukrywanie członków w hierarchii klas. Poprawne użycie
new
jest kluczowe dla efektywnego programowania zorientowanego obiektowo w C#.