Konstruktory i elementy statyczne
Twórz obiekty za pomocą konstruktorów (w tym przeciążonych i łańcuchowych) oraz używaj statycznych pól i metod do przechowywania danych współdzielonych przez wszystkie instancje.
Konstruktory i elementy statyczne to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 3 lekcji w sumie.
Przegląd konstruktorów i elementów static
Cel: Bezpieczne tworzenie obiektów i współdzielenie danych między instancjami.
- Konstruktory ustawiają wymagany stan
- Przeciążenia i łańcuchowanie za pomocą this(...)
- static pola/metody współdzielone przez wszystkie obiekty
Podstawowy konstruktor
Konstruktor jest uruchamiany podczas wywołania new i inicjalizuje obiekt.
using System;
// Constructor sets required data on creation
public class User
{
public string Name { get; private set; }
public int Age { get; private set; }
public User(string name, int age)
{
Name = name;
Age = age;
}
}
public class Program
{
public static void Main(string[] args)
{
User u = new User("Ada", 28);
Console.WriteLine(u.Name + " (" + u.Age + ")");
}
}
Przeciążenia i łańcuchowanie
Używaj przeciążania konstruktorów dla wygody oraz this(...), aby ponownie wykorzystać logikę.
using System;
// Overloads let you offer defaults; chain with this(...)
public class Point2D
{
public int X { get; private set; }
public int Y { get; private set; }
public Point2D(int x, int y)
{
X = x; Y = y;
}
public Point2D(int xy) : this(xy, xy) { } // calls the main constructor
}
public class Program
{
public static void Main(string[] args)
{
Point2D p1 = new Point2D(3, 4);
Point2D p2 = new Point2D(5); // becomes (5,5)
Console.WriteLine("p1: " + p1.X + "," + p1.Y);
Console.WriteLine("p2: " + p2.X + "," + p2.Y);
}
}
Elementy static
Elementy static są współdzielone przez wszystkie instancje. Metody static wywołuj za pomocą nazwy typu.
using System;
// Static members live on the type (one copy shared)
public class Counter
{
private static int _created = 0; // shared count
public int Id { get; private set; }
public Counter()
{
_created = _created + 1;
Id = _created;
}
public static int CreatedCount()
{
return _created;
}
}
public class Program
{
public static void Main(string[] args)
{
Counter a = new Counter();
Counter b = new Counter();
Console.WriteLine("a.Id=" + a.Id + ", b.Id=" + b.Id);
Console.WriteLine("Total created = " + Counter.CreatedCount());
}
}
Konstruktor static i stałe
Konstruktor static jest uruchamiany raz dla danego typu. Używaj const dla literałów znanych podczas kompilacji oraz static readonly dla wartości ustawianych w czasie wykonywania programu.
using System;
public class AppConfig
{
public const string AppName = "Demo"; // compile-time constant
public static readonly DateTime StartedAt; // runtime-initialized once
// Static constructor: runs once before first use of the type
static AppConfig()
{
StartedAt = DateTime.UtcNow;
}
public static string Info()
{
return AppName + " started at " + StartedAt.ToString("u");
}
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(AppConfig.Info());
Console.WriteLine(AppConfig.Info()); // static ctor ran only once
}
}
Wskazówki
Wskazówki:
- Nie rozbudowuj konstruktorów; wcześnie weryfikuj dane wejściowe.
- Używaj przeciążeń dla często stosowanych wartości domyślnych i kieruj je do jednego głównego konstruktora.
- Używaj static, gdy dane rzeczywiście należą do typu (np. liczniki, funkcje pomocnicze).
Pojęcie elementów static
Podsumowanie
Podsumowanie: Używaj konstruktorów do ustawiania wymaganego stanu, przeciążeń i łańcuchowania dla wygody, a elementów static do danych lub funkcji pomocniczych współdzielonych przez wszystkie obiekty.
Często zadawane pytania
Czy lekcja „Konstruktory i elementy statyczne” jest bezpłatna?
Tak — pełny tekst „Konstruktory i elementy statyczne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Konstruktory i elementy statyczne”?
Twórz obiekty za pomocą konstruktorów (w tym przeciążonych i łańcuchowych) oraz używaj statycznych pól i metod do przechowywania danych współdzielonych przez wszystkie instancje. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.
Ile czasu zajmuje lekcja „Konstruktory i elementy statyczne”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Pola, właściwości automatyczne i inicjalizatory obiektów
- Konstruktory i elementy statyczne
- Hermetyzacja i niezmienniki