Klasy w języku C

1. Wprowadzenie

  • Klasa to podstawowy element programowania obiektowego w C#.
  • Klasa to szablon/wzorzec do tworzenia obiektów (instancji).
  • Zawiera:
    • pola (zmienne przechowujące dane),
    • właściwości (properties),
    • metody (funkcje wykonujące operacje),
    • konstruktory (inicjalizujące obiekt),
    • destruktory (rzadko używane).
  • Klasy są typami referencyjnymi – instancje przechowywane są na stercie (heap).

2. Definicja klasy

Składnia:

Przykład:


3. Tworzenie obiektu (instancji) klasy

Wynik:

Toyota Corolla jedzie!

4. Pola (Fields)

  • Pola to zmienne należące do klasy.
  • Mogą być publiczne, prywatne, chronione itd.

5. Właściwości (Properties)

  • Właściwości to specjalne metody dostępu (get, set) do pól prywatnych.
  • Zapewniają enkapsulację – kontrolę dostępu do danych.

Składnia:

Automatyczne właściwości:

Przykład użycia:


6. Konstruktory

  • Konstruktor to specjalna metoda wywoływana podczas tworzenia obiektu.
  • Służy do inicjalizacji danych obiektu.
  • Nazwa konstruktora jest taka sama jak nazwa klasy.

Konstruktor domyślny:

Konstruktor z parametrami:

Przeciążanie konstruktorów:

Można tworzyć wiele konstruktorów z różnymi parametrami:


7. Metody w klasie

  • Metody to funkcje należące do klasy.
  • Mogą operować na danych klasy (polach i właściwościach).

8. Modyfikatory dostępu

  • public – dostępny z każdego miejsca.
  • private – dostępny tylko wewnątrz klasy (domyślny dla pól).
  • protected – dostępny w klasie i klasach pochodnych.
  • internal – dostępny w obrębie tego samego projektu/assembly.
  • protected internal – połączenie protected i internal.
  • private protected – dostępny w klasie i klasach pochodnych w tym samym assembly.

9. Metody i pola statyczne

  • Statyczne elementy należą do klasy, a nie do obiektu.
  • Nie trzeba tworzyć instancji, aby z nich korzystać.

10. Enkapsulacja

  • Enkapsulacja to ukrywanie szczegółów implementacji.
  • Pola są private, a dostęp odbywa się przez public właściwości lub metody.

11. Słowo kluczowe this

  • this odnosi się do bieżącego obiektu.
  • Używane do rozróżnienia między parametrami a polami klasy.

12. Destruktory (Finalizery)

  • Destruktor jest wywoływany przez Garbage Collector przed usunięciem obiektu.
  • Rzadko używany – stosuje się go do czyszczenia zasobów niezarządzanych.

13. Przykładowy program


14. Najlepsze praktyki

  • Zawsze stosuj enkapsulację – pola prywatne, dostęp przez właściwości.
  • Używaj konstruktorów do inicjalizacji obiektów.
  • Nazywaj klasy w PascalCase (np. Samochod, KontoBankowe).
  • Używaj właściwości zamiast publicznych pól.
  • Pola prywatne nazywaj w camelCase (np. imie, wiek).
  • Unikaj zbyt dużych klas – dziel odpowiedzialności (Single Responsibility Principle).