Kezdőoldal » Számítástechnika » Programozás » OOP programozás osztályok!?

OOP programozás osztályok!?

Figyelt kérdés
A kérdésem, hogy gyakorlatban alkalmazható példát valaki tud nekem mondani, hogy mikor érdemes új osztályt létrehozni? Mert én c#-ban programozom GUI programokat szoktam készíteni,de eddig soha nem volt arra szükség, hogy egy class-nál többet használjak.
2018. márc. 2. 20:45
 1/7 anonim ***** válasza:
0%
Az egész programot egy file-ba írod? Az aztán átlátható lehet...
2018. márc. 2. 21:02
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
36%

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.

2018. márc. 2. 21:06
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
44%

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

2018. márc. 2. 21:46
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
52%

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

2018. márc. 2. 22:22
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
Van olyan program amit simán meglehet írni classok nélkül, viszont előnyösebb, mert átláthatóbb lesz tőle. Sokkal könnyebb úgy kódot olvasni, hogy minden a maga saját helyén van, nem egybe ömlesztve, ezért használunk functionöket is. Hasznos még a kódismétlés elkerülésére is, most én pl. játékot készítek, van egy parent classom, az enemy, és abból öröklődik minden féle ellenfél, swordsman, spearman, archer, stb. Hasznos, mert nem kell újra és újra implementálni azokat a functionöket, amiket mind használ, pl támadás, halál, de mégis lehessen változtatni rajtuk.
2018. márc. 3. 19:45
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Amúgy nagyon tanulságot, hogy mindenki nullán (vagy ahhoz közelin) van. Imádom ezt a kategóriát, klasszisokkal sz..rabb még a politikánál is. Minden sekélyes hülye jobban tudja mint más, de hogy hozzászólna bármi értelmeset, áááá azt nem.
2018. márc. 3. 22:19
Hasznos számodra ez a válasz?
 7/7 anonim válasza:
100%

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"

2018. márc. 4. 22:05
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!