OOP programozás osztályok!?










Nem is olyan könnyű ezt megfogalmazni, inkább leírom neked ide a definíciókat és ebből próbáld meg összerakni.
Nos objektum az egy olyan izé, ami tulajdonsággal és rajtuk végezhető műveletekkel rendelkezik.
5 axiómája van az OOP-nek:
- Abstraction: Egy objektum mindig csak a legszükségesebb elemeit "mutassa" a külvilágnak, a belső működését rejtse el.
- Encapsulation: Egy objektum álljon logikailag összetartozó tulajdonságokból és műveletekből.
- Inheritance: Az objektumok álljanak hierarchiában, egy feljebb lévő osztály elemeit felhasználhatja a lejjebb lévő.
- Polymorphism: Egy objektum legyen többféle módon használható, és több hasonló objektum viselkedjen hasonlóan. (Ebből következik az Override)
- Override: Egy objektum legyen képes felülírni, átalakítani saját működését az őseihez képest.
Szóval ezek alapján talán már el tudod dönteni, hogy mikből/hogyan lesznek a programodban objektumok. Ha mégsem kérdezz nyugodtan.
Egy kedves programozás tanár.





Hát szerintem mindenféle defíniciók idemásolgatása nélkül, a legegyszerűbben elmagyarázható és legkézzelfoghatóbb használata egy osztálynak például az adatok könnyebb kezelhetősége.
Tegyük fel, hogy emberek adatait akarod kezelni. Van nevük meg életkoruk. Ezt osztályok nélkül egy többdimenziós tömbben tudnád csak tárolni, ami macerás.
De ha csinálsz egy Ember osztályt, aminek van két publikus tulajdonsága, a név és a kor, akkor már mindjárt nem kell többdimenziós tömb, csak egy sima Ember tömb (vagy lista).





Sok a félreértés az OOP terén.
Szükség soha nincs arra, hogy osztályokat használjunk.
Sőt, igazából arra sincs szükség, hogy egy programozási nyelv bonyolultabb legyen annál, hogy 0-t vagy 1-t írjunk egymás után.
Ennek ellenére használunk mindenféle absztrakciókat, méghozzá azért, hogy megkönnyítse az életünket.
Kell a számokat tízes számrendszerben használni? Nem kell. Ennek ellenére használhatóbb lesz egy mondjuk egy óra alkalmazás, ha 10-es számrendszerben írja ki az időt ahelyett, hogy azt írná "1001:110101"?
Az én személyes tapasztalatomban az OOP legnagyobb előnye az, hogy szét lehet választani a használatot a megvalósítástól.
Lehet nekem bármilyen bonyolult számításom, kommunikációm egy osztály mélyén, ha a használó csak annyit lát belőle, hogy beküld egy számot és visszakap egy másik számot.
Ez pedig nagyon nagy mértékben lecsökkentheti (sajnos nem biztos, hogy lecsökkenti, ehhez már kell a jó programozó) a bugok mennyiségét és javításának nehézségét.
Van ezer más előny is, mint a kód újrafelhasználás, a magas szintű absztrakció lehetősége, ésatöbbi...
Gyakorlati példát meg rendszeresen használod, hiszen a teljes .Net-es GUI (WinForm és WPF is) teljes mértékben objektumorientált (meg igazából az egész C#, .Net is).










egyetértek az előttem leírt alapszabályokkal (encapsulation stb. stb.)
plusz még a szotfver méretétől is függ, h még átlátható-e, ha minden egy osztályban van, vagy pedig érdemesebb logikai egységenként külön osztályokat létrehozni.
ezen kívül ha csapatban dolgozol, akkor a sourcecode management (merge conflict) szempontjából sem mindegy, h 6 ember szerkeszti egyszerre ugyanazt a szövegfájlt vagy pedig mindenki másik fájl "hegesztget"
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!