1. Az OOP elveinek bemutatása

Ma egy új és érdekes világot fedezhet fel. Az objektum-orientált programozás ( OOP ) világa . Korábban tanult az osztályokról és tárgyakról. Ma többet fogsz megtudni róluk, sokkal többet.

Az OOP a programok egyre bonyolultabbá válására adott válaszként jelent meg. Amikor a változók és módszerek a programokban tízezrekre rúgtak, világossá vált, hogy valamit tenni kell. Az egyik megoldás az adatok és a kapcsolódó módszerek külön objektumokba való egyesítése volt.

Most a programozóknak külön le kellett írniuk, hogy az objektumok hogyan hatnak külsőleg, és hogyan viselkednek belül. Ez sokkal könnyebbé tette a programok megértését és írását. A kérdés azonban továbbra is fennáll: mely metódusok legyenek belsőek egy objektumban, és melyek legyenek elérhetők más objektumok számára?

Sokféle megközelítéssel próbálkoztak. A felfedezett legjobb gyakorlatok alapján pedig az OOP 4 alapelve alakult ki. Ezek az absztrakció, a tokozás, az öröklődés és a polimorfizmus . Korábban csak három volt, de a szakértők később úgy döntöttek, hogy hozzáadják az absztrakciót is.


2. Absztrakció

Az emberek az interneten még mindig vitatkoznak az absztrakció definícióján az OOP -ban . Nem az a probléma, hogy mindenki téved. Az van, hogy mindenkinek igaza van . Minél kisebb egy program, annál több absztrakció kötődik a Java nyelvhez. Minél nagyobb egy program, annál több absztrakció kötődik a valós objektumok modellezéséhez/egyszerűsítéséhez.

De úgy tűnik, a legjobb elmék egyetértenek abban, hogy:

Az absztrakció az objektumnak csak azon jellemzőinek felhasználása, amelyek kellően pontosan reprezentálják azt a programban. A fő ötlet az, hogy az objektumot a legkisebb mező- és metóduskészlettel jelenítse meg, amelyek egyidejűleg lehetővé teszik a feladatok megfelelő pontosságú megoldását .

A Java nyelven az absztrakció absztrakt osztályokon és felületeken keresztül valósul meg.

Absztrakció a való életben

Az absztrakció jó példája a való életben a munkaköri leírások egy vállalatnál vagy szervezetnél. A pozíció megnevezése egy dolog, de az egy pozícióhoz rendelt konkrét felelősség teljesen más kérdés.

Képzelje el, hogy a jövőbeli vállalata szervezeti felépítését tervezi. A titkári feladatokat megoszthatja, és több különböző pozícióba is szétoszthatja. A vezérigazgatói pozíciót több különálló pozícióra oszthatja fel: CFO, CTO, CMO, HR igazgató. Vagy például egyesítheti az irodavezetői és a toborzói pozíciót.

Kigondolja a munkaköri címeket, majd felosztja a felelősséget ezekre a pozíciókra. Az absztrakció azt jelenti, hogy elszakadunk a tárgy egészétől, és kiválasztjuk azokat a lényeges tulajdonságokat és összetevőket, amelyekre szükségünk van.

Az OOP elveinek bemutatása.  Absztrakció

Programozási szempontból az absztrakció a program helyes felosztása objektumokra . Általában tucatnyi módja van annak, hogy bármilyen nagy programot kölcsönhatásban lévő objektumként ábrázoljunk. Az absztrakció lehetővé teszi az alapvető jellemzők kiválasztását, a nem alapvető jellemzők figyelmen kívül hagyását.


3. Kapszulázás

A tokozás célja az interakciók javítása az objektumok egyszerűsítésével.

És a legjobb módja annak, hogy leegyszerűsítsünk valamit, ha bármi bonyolultat elrejtünk a kíváncsi szemek elől. Például, ha egy Boeing jumbo jet pilótafülkéjébe kerül, nem fogja azonnal megérteni, hogyan kell kezelni:

De a gépen utazók számára minden egyszerűbb: vesz egy jegyet, és felszáll a gépre, amely felszáll, majd leszáll. Könnyedén repülhet egyik kontinensről a másikra, ha csak „jegyet vásárol” és „repülőre száll”. A repülőgép repülésre, felszállásra, leszállásra és különféle vészhelyzetekre való felkészítésének minden bonyolultsága rejtve marad Ön előtt. Nem beszélve a műholdas navigációs, robotpilóta és légiforgalmi irányító központokról. Ez pedig leegyszerűsíti számunkra az életet.

Programozási szempontból a beágyazás „elrejti a megvalósítást”. Tetszik ez a meghatározás. Osztályunk több száz módszert tartalmazhat, és nagyon összetett viselkedéseket valósíthat meg különféle helyzetekben. De elrejthetjük az összes metódusát a kíváncsi szemek elől (a privát módosítóval megjelölve), és csak két-három metódust hagyhatunk meg más osztályokkal való interakcióhoz (a nyilvános módosítóval megjelölve). Ekkor programunk összes többi osztálya csak a három nyilvános metódust fogja látni, és meghívja őket, másokat nem. És minden bonyolultság az osztály belsejében lesz elrejtve, akárcsak a pilótafülke a boldog utasok elől.


4. Öröklés

Az öröklődésnek két oldala van . Öröklődés a programozásban és öröklődés a való életben. A programozásban az öröklődés egy speciális kapcsolat két osztály között . De a való életben való öröklés sokkal érdekesebb.

Ha valamit a valóságban kell létrehoznunk, két lehetőségünk van:

  1. A semmiből készítse el azt, amire szükségünk van, sok időt és erőfeszítést költve.
  2. A már létező dolgok alapján alkossuk meg azt a dolgot, amire szükségünk van.

Az optimális stratégia a következő: vegyünk egy meglévő jó megoldást, módosítsuk kicsit, igazítsuk az igényeinknek megfelelően, majd használjuk.

Ha visszavezetjük az emberiség történelmét a kezdetekig, rájövünk, hogy évmilliárdok teltek el azóta, hogy a bolygón az élet elkezdődött. De ha az ember kiindulópontjának tekintjük a főemlős őseinket (azaz az ember a főemlős ősökön alapul), akkor még csak pár millió év telt el. Az alapoktól való építés tovább tart. Sokkal hosszabb.

A programozásban hasonlót tehetsz, ha egy osztályt hozol létre egy másik alapján. Az új osztály a meglévő osztálytól származik (örökli). Ez nagyon előnyös, ha egy meglévő osztály rendelkezik a szükséges adatok és módszerek 80-90%-ával. Egyszerűen deklaráljuk a megfelelő osztályt az új osztályunk szülőjeként, és a szülőosztály összes adata és metódusa automatikusan megjelenik az új osztályban. Kényelmes, igaz?


5. Polimorfizmus

A polimorfizmus egy programozási fogalom. Olyan helyzetet ír le, amikor a különböző megvalósítások egyetlen interfész mögött vannak elrejtve. Ha a való életet nézzük egy társunk számára, azt találjuk, hogy egy jármű üzemeltetése megfelelő.

Ha valaki tud teherautót vezetni, akkor mentőautó vagy sportkocsi volánja mögé is beülhet. Egy személy autót tud kezelni, az autó típusától függetlenül, mert minden autónak ugyanaz a kezelőfelülete: kormánykerék, pedálok és sebességváltó. Az autók belső részei eltérőek, de mindegyiknek ugyanaz a kezelőfelülete.

Visszatérve a programozás világába, a polimorfizmus lehetővé teszi, hogy a különböző osztályokba tartozó (általában közös előddel rendelkező) objektumok azonos módon férhessenek hozzá, aminek értéke aligha becsülhető túl. Értéke a program bővülésével nő.

Az OOP elveket jelent. Belső törvények. Mindegyik korlátoz minket valamilyen módon, de cserébe nagy előnyökkel jár, ha a program nagy lesz. Az OOP négy alapelve olyan, mint az asztal négy lába. Vegye el az egyiket, és az egész rendszer instabillá válik.