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
protectediinternal. - 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ę przezpublicwłaściwości lub metody.
11. Słowo kluczowe this
thisodnosi 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).