0Pricing
C# Academy · Lekcja

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

Szybkie sprawdzenie: Które stwierdzenie dotyczące elementów static jest poprawne?

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

  1. Pola, właściwości automatyczne i inicjalizatory obiektów
  2. Konstruktory i elementy statyczne
  3. Hermetyzacja i niezmienniki
← Powrót do C# Academy