Kezdőoldal » Számítástechnika » Programozás » Valaki elmagyarázná nekem egy...

Valaki elmagyarázná nekem egy valószerű példa keretében az objektumorinetált programozás hasznát?

Figyelt kérdés

Értem az egésznek a jelentőségét, részben ismerem a felépítését, tudom, hogy a való élet is úgy működik, hogy vannak tárgyak, és azoknak vannak tulajdonságaik, ez a része már a könyökömön jön ki, hogy miért jó az OOP, és szinte bármilyen tárgyra tudnék class-t létrehozni.

De amíg ilyen jellegű, programozáshoz köthetetlen példákon keresztül van elmagyarázva (mint pl. egy jármű tulajdonságai), addig nem tudom felfogni, hogy mondjuk egy weboldal készítése során ezek az osztályok és tulajdonságok milyen célt szolgálhatnak, vagy miket lehet ezzel leírni, hogy az számomra hasznos legyen. Mert hogy ugye egy weboldal nem tárgyakból áll (?) :D


Az a baj, hogy ahogy a kezdetekben elkezdtem programozást tanulni, a strukturált programozáson túl nem jutottam, jól le is ragadtam benne, mert tetszik az átlátható működése, hogy valami valahol elkezdődik, és különböző műveletek után véget ér, és ezek után baromira nehéznek tűnik átállni az OOP szemléletre.


De hát fejlődni kell a korral ugyebár, hiszem, hogy ha reális példával alá van támasztva az egész, akkor el fogja fogadni az agyam a működési elvet :D



2021. ápr. 21. 06:56
 1/10 anonim ***** válasza:
76%
Angolul keress rá és kismillió cikket fogsz találni.
2021. ápr. 21. 07:22
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

#1: tudom, de mivel egyáltalán nem vagyok jártas az OOP-ban, csak a felületes elméleti részét ismerem, így nem tudom értelmezni a random weboldalakon leírtakat (főleg angolul, amikor néha magyarul sem értek dolgokat :D), ahhoz meg nincs türelmem, hogy megnézzek újra egy 20 órás videóanyagot, ami elmagyarázza századjára is egy autó felépítését :)

Viszont ha ez ennyire összetett dolog, akkor megköszönöm, ha valaki (aki ért hozzá) belinkel egy olyan oldalt, ami szerint megérthetem azt, amire kíváncsi vagyok.

2021. ápr. 21. 07:31
 3/10 anonim ***** válasza:
100%

Az a probléma, hogy az összes ilyen kutyás-macskás-kisállatos példa bár első közelítésben nem rossz, de igazából túlerőltetett. Ez egy elvont dolog, egy programozási módszertan, amit nem lehet az élet más területeiről vett példákkal tökéeltesen elmagyarázni.

Ellenben korántsem olyan nehéz. Mindössze annyi az alapelv, hogy az adatok ne különüljenek el a rajta műveletet végző algoritmustól. A klasszikus módszertanok szerint ugye deklarálod a változókat, majd megírod az algoritmust, ami ezen változókkal dolgozik. A funkcionális módszertan szerint ezeket feladatok szerint külön föggvényekbe szervezed. Na, innen már csak egy lépés az OOP. Egyszerűen a függvényt "összegyúrod" a hozzá tartozó adatokkal, és kész is az objektum.

Technikailag pedig ha mond valamit a rekord, illetve struktúra adattípus, annak egy spéci változata, ami nem csak az adatokat tartalmazza, hanem a hozzájuk tartozó függvényeket, eljárásokat is.

2021. ápr. 21. 07:57
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
100%

Egyszerűbb lesz, ha nem ilyen mesterséges példákon keresztül próbálod megérteni az OOP, hanem veszel egy valódi, már megvalósított OOP megoldást és először azt próbálod megérteni. Már biztos használsz is ilyet, csak még sose gondolkodtál el rajta, hogy hogy működik és miért így működik.

Ha webprogramozásról beszélsz, akkor egy jó példa maga DOM, a Document Object Model, ami egy viszonylag komlex példa egy OO modellre.

Vagy ha egyszerűbb példát akarsz, nézd meg, hogy hogy épül fel a String objektum a javascriptben. Aztán nézhetsz bonyolultabbakat is. Megnézheted, hogy hogy épül fel a kedvenc JS frameworköd, amit használsz, csa valószynűleg sose gondolkoztál el azon, hogy miért működik úgy ahogy. Ebből hamarabb megérted, hogy mi az OOP, mint száz erőltetett példából. A következő lépés, hogy magad is létrehozol saját OOP megoldásokat, de azelőtt szerintem mindenképp érdemes az elméleti alapokat mégegyszer átrágni, de akkor már sokkal érthetőbb lesz az egész, mert láttál megavlósított példákat!

2021. ápr. 21. 09:14
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
Egy weboldalon gyakorlatilag minden frontend elem egy object: a kép, a szövegdoboz, a link, a text box stb.
2021. ápr. 21. 09:36
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
0%

Pedig nagyon is jók azok az autós, állatos példák, csak nem teljesek.


Egy kártyajátékban vannak ugye lapok. Ezek mindegyikében van több-kevesebb azonosság. Ezeket az azonosságokat felhasználva meg lehet írni a kártyapakli ősosztályát és abból ledarálni a paklit, akármilyen kártyához.


Ez ugye megvan?

Az is megvan talán, hogy egy traktor és egy lamborghini között, bár elsőre nem úgy néz ki, sokkal több a közös, mint a különböző, hiszen mindkettőnek négy kereke és egy motorja, váltója, önindítója, kormánya, kuplungja, kipufogó és fék-rendszere van, azonos a világítás is meg még vagy két tucat dolog.

Ha egyszer megírta mindezt az egyik puszedli, akkor jobb egy másikat előzőekből származtatni és kiegészíteni, mint valaki másnak újra megtojni az egészet, nem?

Na, ez a lényege az OOP-nek. A kód ujrafelhasználás és az egységbe zárás. Az, hogy az együvé tartozó dolgokat egy gombócban kezeljük, mert így praktikusabb.

Így könnyebb kib.szni a hülyegyereket is a projektből - vagy mindjárt a cégtől - a shit kódjával együtt. Nem kell utána radírozni, nem fog fájni senkinek.

2021. ápr. 21. 11:57
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
70%

Egy weboldalon minden objektum, a weboldalt felépítő objektumok összeségét ezért is hívjuk Document Object Modell-nek: [link]


Egy kutya közönséges <input> mező is objektum (HTMLInputElement a tisztességes neve, a szülő osztálya HTMLElement, annak a szülője az Element), vannak propertyjei, mint pl. value, name, id, lang, stb., vannak metódusai, mint pl. click(), focus(), blur(), és így tovább.

Ha te olyan működést akarsz adni az <input> elemnek, amit "gyárilag" nem tud, akkor fogod a HTMLInputElement osztályt*, és hozzáadod a kérdéses metódust. Innentől fogva az összes HTMLInputElement osztályba tartozó objektumod meg fogja tudni valósítani az adott viselkedést.


Példának okáért gondolj a GMail felületén a levélszerkesztő ablakra. Azok is mind objektumok, amik azonos osztályba tartoznak. Meg tudsz nyitni belőlük többet is, mindegyik megvalósít egy viselkedést, és kezelik a saját adataikat.


* Javascriptben ECMAScript 2015 (ES6) óta vannak osztályok, azelőtt prototípus-alapú öröklődés volt

2021. ápr. 21. 12:14
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:

Köszönöm a válaszokat!

#6: te ugyanazt mondtad el, amivel kapcsolatban kifejtettem a problémámat. Ezek az autós-állatos-anyám példák nem segítenek a konkrét programozási esetek megértésében, csak max a felületes elméletet segítenek megértetni.

2021. ápr. 22. 14:08
 9/10 anonim ***** válasza:
0%

"Ezek az autós-állatos-anyám példák nem segítenek a konkrét programozási esetek megértésében, csak max a felületes elméletet segítenek megértetni."


Már bocs, de mi az, hogy felületes elmélet?

Ahhoz, hogy asztalt tudj készíteni, tisztában kell lenned azzal, mi az a kalapács, szög, fűrész, deszka.


Aki szeretne megtanulni programot írni, annak először is tudnia kell hogy egyáltalán mi az, majd ha ezt tényleg tudja, akkor jöhet szóba az, hogy hogyan is kell, hogyan is lehet programot készíteni. Erre van nem is egy mód. Na, ezen módok egyike az OOP.


Te ezt a kérdést tetted fel:


"Valaki elmagyarázná nekem egy valószerű példa keretében az objektumorinetált programozás hasznát?"


Én meg válaszoltam rá. Arról már nem tehetek, hogy te hülye vagy a válasz értelmezéséhez és a tetejébe még összevissza beszélsz, ahelyett, hogy belátnád a saját korlátaidat. Ha majd szellemileg olyan szintre sikerült felgyúrni magad, hogy nem okoz nehézséget programozással kapcsolatos alapfogalmak, szimpla összefüggések megértése, akkor gyere vissza.

2021. ápr. 22. 14:40
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
A sakk talán nem lesz erőltetett példa. Van egy alap bábu osztályod, és ezekből származtatod a különböző bábukat: gyalog, futó, huszár, stb. Mindegyik bábu máshogy viselkedik: milyen színű (tulajdonság), milyen mezőket támad (függvény), hova léphet (gyalognál ugye ezek eltérnek) (függvény). A különböző bábu példányokat berakjuk egy konténerbe (tkp. mindegy, hogy egy 8x8-as "táblán" mozgatjuk őket, vagy van róluk egy listánk, és a pozíció is csak egy tulajdonság). Minden lépés előtt ellenőrizzük, hogy a felhasználó lépése szabályos-e, sakkban van-e a király vagy nem lépünk-e sakkba, van-e egyáltalán szabályos lépés (sakk+nincs lépés = matt), vagy patt (nincs sakk+nincs lépés = patt), stb. stb. Persze a sakk nem a legegyszerűbb játék amit egy kezdő programozó is kisujjból megír, de példának szerintem szemléletes.
2021. ápr. 22. 15:54
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, 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!