[PHP (bár most nem lényeg) ] Miért van beépítve a programozásokban objektum amikor (szerintem) ugyanazt egyszerű változókkal és fügvényekkel is meg lehetne ugyan azt írni?
Akkor én is elmondom ugyanazt mint mások. :) Bár kicsit máshogyan megközelítve, ha bár nem PHP központosítjuk a dolgot.
Én személy szerint az Objektum Orientált dolgot eleinte, nem nagyon vette be a gyomrom. Igaz, hogy ez már 5 éve volt durván, de azóta programozási létem részévé vált.
Igaz, hogy minden megvalósítható funkcionális környezetben, ahogy mondtad a kérdésed leírásában. Erre egy élő példa: C nyelv (nem is tud OO-t)
Legelterjedtebb nyelvek (C++ [ő támogatja], Java) avagy még a 1980-as években megalkotott nyelvek (pl.: Smalltalk) is Objektum Orientált környezetre épít.
Nos, de térjünk a lényegre, életszerűségre. Sokszor nekem is probléma volt, hogy absztrakt módon (példa kódokkal) magyarázták el. Sokkalta jobban értettem volna, egy éles helyzetben a használatosságát. (Bár igaz, csak akkor lehet megtanulni, ha kísérletezel) Akkor én egy példát vázolok fel.
Vegyünk egy N hosszúságú szöveget. "aaa bbb 111 1e3r asdasd"
Feladat: Szűrjük ki a szavakat úgy, hogy lekérdezhető legyen a szavak hossza, tartalma, kezdő pozíciója a szövegben. Továbbá csak is kizárólag 1 db 1 dimenziójú tömböt használhatsz.
Nah itt jön be az OOP. Miről szól az objektum? Egy szóról. Így kell 5 szó objektum, ami persze elég 1x megírni, és 5x példányosítani.
Objektumunk tartalmazza a felsorolt tulajdonságokat (attribútumokat):
- pozíció
- hossza
- maga a szo
Hogy ezek "public" vagy "private" az tervezésfüggő, de reflexből private-ra állítjuk, és lekérő metódusokat írunk hozzá. Most ez esetben a Construct-orral töltjük fel az attribútumokat.
PHP alatt előzmény nélkül:
tombunk[] = new SzoObjektum(..., ..., ...);
echo tombunk[1].lekérPozicio(); // output: 4
echo tombunk[3].lekérSzo(); // output: 1e3r
echo tombunk[4].lekérHossz(); // output: 6
Szerintem sokkal jobban látható, melyik szónak melyik tulajdonságát kérjük le. (Persze élesben nem használunk magyar szavakat! Bár a Java esetében UTF-8 kezelése miatt, akár japán, arab karakterekkel is írható függvény név. :3 )
Persze PHP alatt egyszerű, mert ott nem kell tömb méretet előre inicializálni, de Java alatt vagy C++on már ez így nem tehető meg.
Max Java alatt ArrayList, C++ alatt meg Vector.
Elírtam :)
Java alatt van "."
PHP-ban pedig "->" szerepel
C++ban meg mind a 2. :D
Köszönöm, a válaszokat...
Végül is akkor az derült ki, hogy amíg egyszerű programokat írok, nem igazán veszem hasznát ennek
Úgy is ebben szeretnék hosszútávon dolgozni - gondolom magam is tapasztalni fogom az előnyeit :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!