Kezdőoldal » Számítástechnika » Programozás » [PHP (bár most nem lényeg) ]...

[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?

Figyelt kérdés
Most tanulok PHP5-ben programozni - most tartok az objektumoknál, de egyszerűen nem értem, hogy miért lenne mássabb a fügvényeknél. Ráadásul az objektumokba is ugyan úgy fügvényeket kell írni. Eddig úgy tűnt nekem, hogy még könnyebb is változókkal és fügvénnyekkel ugyanazt megcsinálni, minthogy ezt még osztályokba rakjam és úgy hívjam meg...

2015. okt. 8. 16:03
 1/9 anonim ***** válasza:
Nyilván nem véletlenül. ;)
2015. okt. 8. 16:07
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Azt gondoltam. Igazából tudom, hogy a programozásban sokszor vannak alternatív megoldások, csak próbálom megérteni, hogy ez miért jobb vagy mivel több...
2015. okt. 8. 16:14
 3/9 anonim ***** válasza:
Bármelyik OO programozási nyelv tankönyvének az elején elolvashatod a miértet, de itt is keresgélhetsz: [link]
2015. okt. 8. 18:27
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
2015. okt. 8. 18:38
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
Az OOP-nek rengeteg előnye van, de nem mindig. Lehet anélkül is rendes programokat írni, bizonyos szempontból gyorsabb lehet a fejlesztés, ha van egy jó alapod (de nehezebb az alapot megírni), rákényszerít, hogy jobban végiggondolj dolgokat, rugalmatlanabb és lassabb, és biztonságosabb. Ez egy programozási paradigma. Ha megérted mélységében, hogy mit jelent a tudományban a "paradigma" szó, akkor sok mindent érteni fogsz. Manapság ez az elterjedt módszer, és sokan kötelezőnek tartják. Kritikusai szerint viszont olyankor is alkalmazzák, amikor nem kéne. Amíg kicsi és egyszerű programokat írsz, többnyire nincs rá szükséged. De én is beleszaladtam már olyanba, hogy "á, ez jó lesz procedurálisan is, olyan egyszerű"? és amikor még újabb lehetőségeket akartam belevinni, inkább elkezdtem elölről objektumosan, és abból okulva a hasonló programokat később már így is kezdtem el.
2015. okt. 8. 19:19
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:

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.

2015. okt. 8. 20:45
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

Elírtam :)

Java alatt van "."

PHP-ban pedig "->" szerepel

C++ban meg mind a 2. :D

2015. okt. 8. 20:48
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

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

2015. okt. 9. 08:37
 9/9 A kérdező kommentje:
Amúgy a 3. válaszoló linkjében írtak tényleg a hülyéknek lett leírva. Ebben a formában sokkal több dolgot megértettem az egész rendszerben :D
2015. okt. 9. 08:59

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!