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

1 / 1

🧒 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.

📚 Źródła