Programowanie Obiektowe (OOP)
Paradygmat używający obiektów z danymi i metodami (4 filary).
Programowanie Obiektowe (OOP) to paradygmat, który strukturyzuje kod wokół 'obiektów'—samodzielnych jednostek zawierających dane (atrybuty) i kod (metody).
Cztery filary OOP:
1. Enkapsulacja: Łączenie danych i metod, ukrywanie stanu wewnętrznego
2. Abstrakcja: Ujawnianie tylko istotnych cech
3. Dziedziczenie: Klasy dziedziczą właściwości/metody z klas nadrzędnych
4. Polimorfizm: Ten sam interfejs, różne implementacje
graph LR
Center["Programowanie Obiektowe (OOP)"]:::main
Rel_functional_programming["functional-programming"]:::related -.-> Center
click Rel_functional_programming "/terms/functional-programming"
Rel_java["java"]:::related -.-> Center
click Rel_java "/terms/java"
Rel_stored_program_concept["stored-program-concept"]:::related -.-> Center
click Rel_stored_program_concept "/terms/stored-program-concept"
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;
🧠 Sprawdzenie wiedzy
🧒 Wyjaśnij jak 5-latkowi
Pomyśl o instrukcjach LEGO. Klasa to jak instrukcja budowy domu. Każdy dom, który budujesz według tej instrukcji, to obiekt. Różne domy mogą dzielić części (dziedziczenie), ale wyglądać inaczej (polimorfizm)!
🤓 Expert Deep Dive
Zasady SOLID kierują dobrym projektowaniem OOP. Kompozycja zamiast dziedziczenia unika problemu kruchej klasy bazowej. Duck typing (Python) umożliwia polimorfizm bez dziedziczenia.