Projekt edukacyjny mający na celu porównanie implementacji paradygmatów programowania obiektowego (OOP) w trzech najpopularniejszych językach programowania: C++, Java oraz Python.
Symulator modeluje działanie gospodarstwa rolnego (hodowla zwierząt, uprawa roślin, zarządzanie zasobami), demonstrując różnice w składni, zarządzaniu pamięcią oraz strukturze klas.
Głównym celem była analiza porównawcza mechanizmów takich jak:
- Dziedziczenie i Polimorfizm (Inheritance & Polymorphism).
- Enkapsulacja (Encapsulation).
- Zarządzanie pamięcią: Ręczne (
deletew C++) vs Automatyczne (Garbage Collection w Java/Python).
Projekt składa się z trzech niezależnych modułów realizujących tę samą logikę biznesową:
- Cechy: Wykorzystanie wskaźników, wirtualnych destruktorów oraz ścisła kontrola typów.
- Kluczowe zagadnienia: Alokacja pamięci na stercie i stosie.
- Cechy: Pełna obiektowość, wykorzystanie interfejsów i klas abstrakcyjnych.
- Kluczowe zagadnienia: Maszyna wirtualna JVM, automatyczne odśmiecanie pamięci.
- Cechy: Dynamiczne typowanie, zwięzłość kodu ("Pythonic way").
- Kluczowe zagadnienia:
self, brak ścisłych modyfikatorów dostępu (private/public).
cd cpp_version
g++ main.cpp -o farm_sim
./farm_simcd java_version
javac Main.java
java Maincd python_version
python3 main.py💡 Wnioski Edukacyjne Realizacja tego projektu pozwoliła mi zrozumieć:
Jak narzut abstrakcji wpływa na wydajność w poszczególnych językach.
Jak różnie realizowany jest polimorfizm (statyczny vs dynamiczny).
Dlaczego Python jest preferowany do szybkiego prototypowania, a C++ do systemów wymagających wydajności.
Autor: Dominik Szwed Student Informatyki, Politechnika Gdańska