Hirdetés
Ha megtettél valamit kezdő programozás, vagy akár el is kezdte vizsgálni a különböző nyelveket, valószínűleg felismerte az “objektum-orientált programozás” (vagy “OOP”) kifejezést.
Mindenféle technikai magyarázatot találunk arra, hogy mi ez, de ma megvizsgáljuk az objektum-orientált programozás egyszerű meghatározását.
Mielőtt elkezdenénk: Eljárási nyelvek
Az objektum-orientált programozási nyelv megértéséhez meg kell értenie, hogy mi váltotta fel. A korai programozási nyelvek procedurálisak voltak - úgynevezték azért, mert a programozó egy nagyon konkrét eljárást határoz meg, amelyeket a számítógép elvégz.
A legkorábbi napokban az eljárásokat punch kártyákra írták. Ezek a lépések megtörtént az adatokban, műveletek sorozatát hajtották végre az adatokra, majd új adatokat adtak ki.
Az eljárási nyelvek egy ideje jól működtek (és néhányan még használatban vannak). De ha valami programozni szeretne egy alapvető lépéssorozaton túl, az eljárási nyelvek kezelése nehézkessé válhat. Itt jön be az objektum-orientált programozás.
Objektum-orientált programozás
Tehát mi az az objektum-orientált programozás?
Az első objektumorientált nyelv (általában egyetértett azzal, hogy Simula lenne) bevezette a tárgyak. Az objektumok olyan információgyűjtemények, amelyeket egyedi entitásként kezelnek.
Mélyebben belemerülünk egy másodperc alatt egy példába azzal, hogy ez valójában mit jelent, de először beszélnünk kell osztályok. Az osztályok olyanok, mint az előobjektumok. Az attribútumok listáját tartalmazzák, amelyek meghatározásakor objektummá válnak.
Vegyük például a sakkjáték programozását. Lehet, hogy egy Piece nevű osztályunk lesz. A Piece-en belül van egy attribútumok listája:
- Szín
- Magasság
- Alak
- Mozgás megengedett
Egy tárgy egyszerűen meghatározza az adott osztályhoz tartozó dolog egy adott példányát.
Tehát lehet egy WhiteQueen nevû objektum. Az objektum mind a négy tulajdonság számára meghatározást tartalmaz (fehér, magas, hengeres, keresztmetszettel, tetszőleges számú terek bármely irányba). Lehet, hogy van módszerek vagy funkciók.
Mi teszi ezt sokkal jobban, mint az eljárási megközelítés?
Röviden, objektum-orientált programozási nyelvek (mint a Java) megkönnyíti az adatok és kódok olyan módon történő rendezését, amely sokoldalúbb a nagyobb projekteknél.
Ha kicsit részletesebben tárgyaljuk, tárgyaljuk az objektum-orientált programozás négy alapját.
Objektum-orientált programozás: Absztrakció
Csak azért, mert valamit használni akar, még nem jelenti azt, hogy tudnia kell, hogyan működik. Például egy eszpresszógép bonyolult. De nem kell tudnia, hogyan működik. Csak azt kell tudnia, hogy amikor megnyomja az „On” gombot, akkor espressót fog kapni.
Ugyanez vonatkozik az objektum-orientált programozás objektumaira. A sakk példánkban van egy move () módszer. Ez a módszer sok adatot és egyéb módszert igényelhet. Szüksége lehet a kezdeti és a végső helyzetváltozókra. Használhat egy másik módszert annak meghatározására, hogy rögzített-e egy darabot.
De ezt nem kell tudnia. Csak annyit kell tudnia, hogy amikor megmondja, hogy a darab mozog, akkor mozog. Ez az absztrakció.
Objektum-orientált programozás: Beágyazás
A beágyazás az objektum-orientált programozás absztrakciójának egyik módja. Minden objektum olyan adatgyűjtemény, amelyet egyetlen entitásként kezelnek. És ezen objektumokon belül vannak adatok - mind a változók, mind a módszerek.
Az objektumon belüli változók általában privát állapotban vannak, vagyis más objektumok és módszerek nem férhetnek hozzá hozzájuk. Az objektumokat csak módszereikkel lehet befolyásolni.
A Bishop objektum több információt tartalmazhat. Például lehet egy „pozíció” elnevezésű változó. Ez a változó szükséges a move () módszer használatához. És természetesen van színe.
Azzal, hogy a pozícióváltozót magánkénti és a move () metódust nyilvánosságra hozza, a programozó megvédi a mozgatható változót attól, hogy bármi más befolyásolja. És ha a szín privát változó, akkor egy másik objektum nem változtathatja meg azt, kivéve, ha létezik olyan módszer, amely lehetővé teszi a változtatást. (Amely valószínűleg nem lenne, mivel a darab színének állandónak kell maradnia.)
Ezeket a változókat és módszereket a Bishop objektumban tartjuk. Mivel be vannak zárva, a programozó megváltoztathatja az objektum szerkezetét vagy tartalmát anélkül, hogy aggódnia kellene a nyilvános felület miatt.
Objektum-orientált programozás: Öröklés
Az osztályokon kívül az objektum-orientált programozási nyelveknek is vannak osztályai. Ezek tartalmazzák a szülőosztály összes attribútumát, de tartalmazhatnak más attribútumokat is.
Sakkjátékunkban a gyalogdaraboknak olyan módszerre van szükségük, amely más részekké alakítja őket, ha a tábla végére készítik. A transformPiece () metódusnak nevezzük.
Nem minden darabnak van szüksége a transformPiece () módszerre. Tehát nem szeretnénk beletenni a Darab osztályba. Ehelyett létrehozhatunk Gyalog nevű alosztályt. Mivel ez alosztály, az összes attribútumot a Piece-től örökli. Tehát a Gyalog alosztály egy példája tartalmazhat színt, magasságot, formát és mozgást.
De magában foglalja a transformPiece () módszert is. Most soha nem kell aggódnunk, hogy véletlenül használja ezt a funkciót egy bástyán. Íme egy műszaki magyarázat:
Az alosztályok létrehozása sok időt takarít meg. Ahelyett, hogy mindent új osztályokkal hozna létre, a programozók létrehozhatnak egy alaposztályt, majd kiterjeszthetik új alosztályokra, amikor erre szükségük van. (Ezt azonban érdemes megjegyezni az öröklés túlzott támaszkodása rossz 10 alapvető programozási alapelv, amelyet minden programozónak be kell tartaniaMindig írjon olyan kódot, amelyet bárki fenntarthat, aki végül dolgozik a szoftverén. Ebből a célból itt van néhány programozási alapelv, amely segít megtisztítani a cselekedetét. Olvass tovább .)
Objektum-orientált programozás: Polimorfizmus
A polimorfizmus az öröklés eredménye. A polimorfizmus teljes megértése bizonyos programozási ismereteket igényel, tehát itt csak az alapokat fogjuk betartani. Röviden: a polimorfizmus lehetővé teszi a programozók számára, hogy azonos nevű módszereket alkalmazzanak, de együtt különböző tárgyak.
Például, a Darab osztályunkban lehet egy move () módszer, amely egy darabot egy teret bármely irányba mozgat. Ez a királydarabhoz működik, de nem másokhoz. A probléma megoldásához meghatározhatunk egy új move () módszert a Rook alosztályban, amely a mozgást korlátlan számú szóközzel határozza meg előre, hátra, balra vagy jobbra.
Most, amikor egy programozó meghívja a move () metódust, és egy darabot használ argumentumként, a program pontosan tudja, hogyan kell mozogni a darabnak. Ez rengeteg időt takarít meg, amikor megpróbálja kitalálni, hogy sokféle módszer közül melyiket kell használni.
Objektum-orientált programozás dióhéjban
Ha a fejed kissé forog az utóbbi négy meghatározás után, ne aggódjon túl sokat. Itt vannak a legfontosabb dolgok, amelyeket meg kell emlékezni:
- Objektum-orientált programozás egyetlen objektumokba gyűjtött információkat gyűjt össze.
- Minden objektum egy osztály egyetlen példánya.
- Az absztrakció elrejti egy tárgy belső működését, amikor nem szükséges látni azt.
- A beágyazás a kapcsolódó változókat és módszereket tárolja az objektumokon belül, és megvédi őket.
- Az öröklés lehetővé teszi, hogy az alosztályok a szülő osztályok attribútumait használják.
- A polimorfizmus lehetővé teszi az objektumoknak és módszereknek, hogy többféle helyzetet kezeljenek egyetlen felülettel.
Ha emlékszel ezekre a pontokra, akkor jól tudod kezelni, mi az objektum-orientált programozás. Az objektum-orientált programozás négy alapja, amint már említettem, kicsit nehéz lehet kezelni. De ha elkezdi a programozást, azok egyértelműbbé válnak.
Ne feledje, hogy ebben a cikkben csak az általános ismeretekről beszéltünk. A különféle objektum-orientált nyelveknek megvannak a saját furcsa és módjai a dolgok megtörténtéért. Ha egyszer válassza ki a megfelelő nyelvet Keresi a legjobb programozási nyelveket? Kezdd itt!Akár teljesen új vagy a programozási nyelvek számára, vagy egy új típusú programozásba akar ugrani, az egyik legfontosabb kérdés: "Melyik programozási nyelv van nekem megfelelő?" Olvass tovább , elkezdi megtanulni, hogyan gyakorolja az OOP alapelveit.
A Dann tartalomstratégiai és marketing tanácsadó, aki segíti a vállalatokat a kereslet előteremtésében és vezet. Blogokat ír a stratégiai és tartalommarketingről a dannalbright.com webhelyen.