Klasa

Zdefiniowany przez użytkownika plan lub szablon do tworzenia obiektów, określający ich dane (atrybuty) i zachowania (metody).

Klasa to podstawowa koncepcja w programowaniu obiektowym (OOP). Działa jak plan architektoniczny do tworzenia obiektów (instancji).

Komponenty Klasy:
- Atrybuty (Pola/Właściwości): Dane, które obiekt będzie przechowywał (np. nazwa, wiek).
- Metody (Funkcje): Akcje, które obiekt może wykonać (np. szczekaj(), obliczPensje()).
- Konstruktor: Specjalna metoda do inicjalizowania nowych obiektów.

Relacja Klasa-Obiekt:
Jeśli Samochód to klasa, to mojapCzerwonaToyota jest obiektem (instancją) tej klasy.

        graph LR
  Center["Klasa"]:::main
  Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
  click Pre_object_oriented_programming "/terms/object-oriented-programming"
  Rel_object["object"]:::related -.-> Center
  click Rel_object "/terms/object"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Wyjaśnij jak 5-latkowi

Klasa jest jak plan architektoniczny domu. Mówi ci, ile będzie pokoi i gdzie będą okna. Ale nie możesz mieszkać w planie. Musisz zbudować prawdziwy dom (obiekt) na podstawie planu. Z tego samego planu (klasy) możesz zbudować wiele różnych domów (obiektów).

🤓 Expert Deep Dive

Klasy definiują polimorfizm, dziedziczenie i hermetyzację. Klasy abstrakcyjne nie mogą być instancjonowane i służą jako bazy dla podklas. Interfejsy definiują kontrakty bez implementacji. Metaklasy (w Pythonie/Smalltalku) to klasy tworzące klasy. Elementy statyczne należą do samej klasy, a nie do instancji.

🔗 Powiązane terminy

Wymagana wiedza:

📚 Źródła