21 gyakran ismételt OOP-interjúkérdés és válasz, amelyet ma tudni érdemes

Az objektum-orientált programozással kapcsolatos interjúkérdések segíthetnek a programozóknak és a fejlesztőknek bővíteni tudásukat a programozási világ kulcsfogalmairól.

Az OOP az egyik legszükségesebb és legszükségesebb programozási paradigma, amely eljárások és függvények helyett objektumokra és osztályokra összpontosít.

Egyes OOP-alapú programozási nyelvek az Objective-C, Java, Ada, Perl, Python, C++ stb.

A nagy cégek objektumorientált megközelítésekben és mintákban jártas fejlesztőket keresnek.

Tehát, ha azt tervezi, hogy megjelenik egy ilyen interjúfolyamatban, alaposan meg kell ismernie az OOP fogalmait.

Nézzünk meg néhány gyakran feltett OOP-interjúkérdést és -választ, amelyek segítenek felkészülni az interjúkra és tesztekre.

Objektumorientált programozás (OOP): Áttekintés

Az OOP egy programozási paradigma, amely az objektumok körül forog. Itt az objektumok valós példányoknak minősülnek, például egy osztálynak, amely az osztálysablonban meghatározott viselkedéseket és jellemzőket tartalmazza.

Például vegyünk egy autót. Az OOPs modell szerint:

  • Tárgy: egy autó. Bármilyen típusú vagy modell lehet, például az Ön által birtokolt autó.
  • Osztály: Az autó modellje vagy típusa, például BMW, Chevrolet, Kia, Audi stb.
  • Jellemzők: Az autó színe, az autó alvázszáma, a motor típusa, a sebességváltó típusa stb.
  • Viselkedés: Hogyan váltsunk sebességet, hogyan indítsuk el az autót stb.

Itt a jellemzőket tulajdonságoknak, attribútumoknak vagy adatoknak is nevezik, míg a viselkedéseket eljárásoknak, módszereknek vagy függvényeknek nevezik a programozási nyelvekben.

Tehát kezdjük néhány gyakran feltett OOP-interjú kérdéssel.

Mit jelent az OOP kifejezés?

Válasz: Az objektumorientált programozás (OOP) egy olyan programozási modell, amely eljárások és függvények helyett objektumokra és osztályokra épül. Az egyes objektumok osztályokba vannak rendezve. Az OOPs leírja a való világ entitásait olyan fogalmakkal, mint a polimorfizmus, elrejtés, öröklődés stb., valamint programozási paradigmák.

Az OOP-ok összekapcsolják a kódot és az adatokat. Az objektumok valós entitások, amelyeket meghatározott jellemzőkkel és viselkedéssel rendelkező osztályok határoznak meg, míg az osztályt egy adott objektum mintájaként határozzák meg. Felhasználó által definiált adattípusként is ismert.

Ez magában foglalja a tervezési és gyártási programokat, valamint a mobilalkalmazást. Használhatja például az OOP-t rendszerszimulációs szoftverek gyártásához.

Milyen más programozási paradigmák vannak, mint az OOP?

Válasz: A programozási paradigmák a programozási nyelvek kategorizálásának módszerei az egyes nyelvek jellemzői alapján. Kétféle programozási paradigma létezik:

  • Imperatív programozási paradigma: A logika végrehajtására összpontosít, és meghatározza a vezérlési folyamatot. Ez magában foglalja az eljárási programozási paradigmát, az objektumorientált programozást (OOP) és a párhuzamos programozást.
  • Deklaratív programozási paradigma: Arra összpontosít, hogy mit kell végrehajtani a programban, és a logikáját határozza meg, nem a vezérlési folyamatot. Tartalmazza a logikai programozási paradigmát, a funkcionális programozási paradigmát és az adatbázis-programozási paradigmát.
  Az iPhone „biztonsági” alkalmazásai valóban csinálnak valamit?

Mi a különbség az OOP és az SOP között?

Válasz: Értsük meg az OOP és az SOP közötti különbséget ezzel a táblázattal:

Objektum-orientált programozási szerkezet-orientált programozásEz egy olyan programozási modell, amely eljárások és függvények helyett objektumokra épül. Logikai struktúrát biztosít a programnak, ahol a programok függvényekre vannak felosztva. Alulról felfelé irányuló megközelítést követ Felülről lefelé irányuló megközelítést követ. Adatok elrejtését vagy beágyazását biztosítja, nem rejti el az adatokat. Összetett problémákat képes megoldani. Mérsékelt problémákat képes megoldani. Alacsony redundancia, mivel a kód újra felhasználható Nem támogatja a kód újrafelhasználhatóságát. Rugalmasabb Kevésbé rugalmas Elsődleges szempont az adatok. Elsődleges szempont a program logikai felépítése.

Melyek az OOP főbb jellemzői?

Válasz: Íme az OOP főbb jellemzői:

  • Öröklés
  • Egységbezárás
  • Absztrakció
  • Polimorfizmus
  • Módszer felülbírálása
  • A módszer túlterhelése
  • Objektumok
  • osztályok
  • Konstruktorok és rombolók

Az öröklődés, a polimorfizmus és a beágyazás az OOP alapvető elemei, amelyek megkülönböztetik ezeket a jellemzőket a nem OOP nyelvektől.

Mi az a kapszulázás?

Válasz: A beágyazás az osztályok, változók, metódusok és egyebek kapszulába helyezésének módszere, amely szükséges a munka elvégzéséhez, és ugyanazt a kapszulát bemutatni a felhasználónak. Leegyszerűsítve minden szükséges módszer és adat össze van rakva, a felesleges részletek pedig el vannak rejtve a felhasználók elől.

Más módon is meghatározható:

  • Adat-összerendelés: A beágyazás az adattagok és a metódusok osztályként vagy egészként való összekapcsolásának folyamata.
  • Adatok elrejtése: A beágyazás egy olyan folyamat, amelynek során szükségtelen információkat rejtenek el, például egy objektum tagjának hozzáférési korlátozásait stb.

Mi a polimorfizmus?

Válasz: Értsük meg a polimorfizmust úgy, hogy a kifejezést két szóra választjuk, amelyek alkotják:

A „poly” jelentése „sok”

A „Morph” jelentése „formák”

Tehát a polimorfizmust különböző alakú objektumként írhatjuk le.

Az OOP-ban ez az a folyamat, amelyen keresztül bizonyos adatok, objektumok, metódusok vagy kódok eltérően viselkednek különböző kontextusokban vagy körülmények között. Az OOPs modellben kétféle polimorfizmus létezik:

  • Futásidejű polimorfizmus
  • Állítsa össze az idő polimorfizmusát

Más szóval, ez egyetlen interfész többszörös definíciója. Például van egy „jármű” nevű osztály, amely egy „sebesség” metódusból áll. Lehetetlen meghatározni a sebességet, mivel a különböző járművek eltérő sebességgel rendelkeznek. Így ez a különféle járművekre vonatkozó különféle definíciók alosztályaiban definiálható.

Mi az a statikus polimorfizmus?

Válasz: A statikus polimorfizmust fordítási idő polimorfizmusnak is nevezik. Ez az a jellemző, amelyen keresztül egy objektum az értékek alapján összekapcsolható a megfelelő operátorral vagy funkcióval. Ez a kezelő túlterhelésével vagy a módszer túlterhelésével érhető el.

Itt a metódusok hasonló nevet használnak, de az egyes nevek paraméterei eltérőek. Az objektum másként viselkedik hasonló trigger esetén. Így ugyanabban az osztályban több metódust is implementálunk.

Mi az a dinamikus polimorfizmus?

Válasz: A dinamikus polimorfizmust futásidejű polimorfizmusnak is nevezik. Az OOP-ban lévő polimorfizmus típusára utal, amelyen keresztül a függvény tényleges beépítése a végrehajtás vagy a futási idő alatt rendeződik. Módszer felülbírálásával érhető el.

Például két osztály, a bike és a Yamaha jön létre, és a Yamaha osztály kiterjeszti a bike osztályt, felülírva a run() metódust. Mivel az alosztály metódus felülírja a szülő osztály metódusát, futás közben kerül meghívásra.

Mi az az osztály?

Válasz: Egy osztály definiálható olyan tervként vagy sablonként, amely bizonyos értékeket, úgynevezett tagadatokat tartalmaz. Tartalmaz néhány szabályt is, amelyeket függvényeknek vagy viselkedéseknek nevezünk. Amikor létrehoz egy objektumot, az automatikusan átveszi az osztályban meghatározott függvényeket és adatokat.

  Fényképek streamelése Androidról tévéjére Chromecast fotófallal

Az osztály azonban az objektumok tervrajza vagy sablonja. Egy osztály alapján tetszőleges számú objektum tervezhető. Például először egy autó sablonja jön létre. Ezt követően az autó sablonja alapján különböző autóegységeket terveznek.

Mi az objektum?

Válasz: Az objektum egy olyan osztály példányaként definiálható, amely a sablonban meghatározott viselkedések és tagok példányát tartalmazza. Az objektum az a tényleges entitás, amellyel a felhasználó interakcióba lép, de az osztály csak egy tervrajz az objektumhoz.

Így az objektumok bizonyos jellemzőkkel vagy viselkedéssel rendelkeznek, és helyet foglalnak – például egy adott autómodell.

Mi a különbség az osztály és a struktúra között?

Válasz: Értsük meg ezt egy táblázat segítségével:

Osztálystruktúra Az osztályok referencia típusúak. A struktúrák értéktípusúak. A kupacmemóriához van hozzárendelve. A veremmemóriában van lefoglalva. Az allokáció olcsóbb a nagy referenciatípusban. korlátozott funkciókkal rendelkezik.A nagy programokban egy osztályt használnak.Kis programokban egy struktúrát használnak.Egy konstruktort és egy destruktort tartalmaz.Paraméterezett vagy statikus konstruktort tartalmaz. Minden alkalommal új() kulcsszót használ, amikor példányokat hoz létre. Könnyen létrehozhat példányokat kulcsszavakkal vagy anélkül. Egy osztály örökölhet egy másik osztálytól. Egy struktúra nem örökölhet. Egy osztály adattagjai védhetők. A struktúra adattagjai nem védhetők. A függvénytagok lehetnek absztraktok vagy a virtualFunkciótagok nem lehetnek absztraktok vagy virtuálisak. Az osztály két különböző változója tartalmazhatja egy hasonló objektum hivatkozását.Minden változónak saját másolata van.

Mi az Öröklés?

Válasz: Az öröklődés az OOP-k egyik olyan tulajdonsága, amely lehetővé teszi egy osztály számára, hogy örökölje egy másik osztály fő tulajdonságait. Például, ha a „jármű” egy osztály, akkor az „autó”, „kerékpár” stb. olyan egyéb osztályok, amelyek örökölhetik a „jármű” osztály kulcstulajdonságait.

Ez a funkció segít megszabadulni a redundáns kódtól; így csökkentve a kód méretét. Egyszerűen fogalmazva, az öröklődést úgy definiáljuk, mint a szülőosztálytól a gyermekosztályig tartó tulajdonságok fogadóját. Itt a „jármű” a szülő osztály, az „autó” vagy „kerékpár” pedig a gyermekosztályok a fenti példából.

Ily módon újra felhasználhatja egy osztály programozási kódját egy másik osztályban anélkül, hogy újra megírná ugyanazt a kódot, vagy időt veszítene a folyamatban.

Melyek az öröklés különböző típusai?

Válasz: Az OOPs modellben különféle öröklődési típusok használatosak, például:

  • Egyetlen öröklődés: Az az öröklődés, amelyben egyetlen osztály örökli egyetlen alaposztály közös funkcióit.
  • Többszörös öröklődés: Akkor jön a képbe, ha egyetlen osztály egynél több osztályt örököl.
  • Többszintű öröklődés: Ez azt jelenti, hogy egy osztály más osztályoktól örököl, amelyek egy másik osztály alosztályai.
  • Hierarchikus öröklődés: Arra az öröklődésre utal, amikor egy osztálynak több alosztálya van.
  • Hibrid öröklődés: többszintű és többszörös öröklődés kombinációja.

Mik az öröklés korlátai?

Válasz: Az öröklés néhány korlátozása a következő:

  • Megnöveli a program végrehajtásához szükséges erőfeszítést és időt. Ez azért van, mert gyakran kell egyik osztályról a másikra ugrani, ami időbe telik.
  • A szülői osztály és a gyermekosztály nagyon szorosan összekapcsolódik, így kisebb a rugalmasság.
  • Gondos beépítést igényel, különben elégtelen vagy helytelen eredményhez vezet.
  • A program egyetlen módosítása a szülő- és a gyermekosztályok kódjának változásához vezethet.

Mi az absztrakció?

Válasz: Az absztrakció az OOP egyik eleme. Az absztrakció kulcsszerepe a komplexitás kezelése. Ez úgy történik, hogy elrejti a nem kívánt részleteket a felhasználók elől. Ez lehetővé teszi a felhasználók számára, hogy az absztrakción felül összetett logikát valósítsanak meg anélkül, hogy a rejtett bonyolultságra gondolnának.

  Hogyan lehet letiltani az automatikus űrlapkitöltést a Google Chrome-ban

Például, ha Ön kávérajongó, tudnia kell, hogy mennyi tejet, szemes kávét és kockacukrot szeretne hozzáadni egy csésze kávé elkészítéséhez egy kávéfőzővel. Nincs értelme annak a gépnek a működési elvén gondolkodni. A kávéfőző egy rejtett komplexitás, amit nem kell tudni, de a kávéfőzés folyamata elengedhetetlen.

Az absztrakciónak két típusa van:

  • Adatabsztrakció
  • Folyamat absztrakció

Mi az a konstruktor?

Válasz: A konstruktor egy speciális metódus az osztályban vagy struktúrában, amelynek neve hasonló az osztály nevéhez. Az objektumok inicializálásának szükséges célját szolgálja. Segít a tagadatok példányosításában, valamint az objektumok osztályhoz rendelésére szolgáló metódusokban.

A konstruktor létrehozásakor néhány dolgot szem előtt kell tartani:

  • Ugyanaz a neve, mint az osztály neve.
  • Nem lehet absztrakt, végleges vagy statikus.
  • Nincs benne visszatérési típusú változó.

Milyen típusú konstruktorok vannak a C++-ban?

Válasz: A C++-ban alapvetően háromféle konstruktor létezik:

  • Alapértelmezett konstruktor: Olyan konstruktor, amelynek nincsenek paraméterei vagy argumentumai a definícióban. Ez a típusú konstruktor az adattagok vagy változók valós értékekkel történő inicializálására szolgál.
  • Paraméterezett konstruktor: argumentumokat vagy paramétereket tartalmaz a deklarációban és a definícióban. A paraméterezett konstruktoron egynél több paraméter is áthaladhat. Túlterhelésre használják, hogy megismerjük a több konstruktor különbségeit.
  • Konstruktor másolása: Ez egy olyan tagfüggvény, amely egy másik, hasonló osztályú objektumot használ egy objektum inicializálására. Ezenkívül segít az adatok másolásában egyetlen objektumról a másikra.

Mi az a Destruktor?

Válasz: A destruktor egy objektum megsemmisítése közben automatikusan meghívott metódus. Bizonyos műveleteket hajt végre:

  • Az objektum inicializálása során korábban lefoglalt halomterület helyreállítása
  • Adatbázis-kapcsolatok és fájlok bezárása
  • Hálózati erőforrások és erőforrászárak felszabadítása
  • Különféle háztartási feladatok ellátása

Más szavakkal, a destruktor megsemmisíti a konstruktor által inicializált objektumokat. Ez egy speciális tagfüggvény, amelynek neve megegyezik az osztálynévvel, de egy (~) szimbólum előzi meg. A destruktor túlterhelhető, mivel ez egyirányú funkció.

Mi az a szemétgyűjtés (GC)?

Válasz: A szemétgyűjtő (GC) egy programozási nyelvekbe, például Java és C# beépített memóriahelyreállító elem. A GC-kompatibilis programozási nyelv legalább egy szemétgyűjtőt tartalmaz, amely automatikusan felszabadít olyan memóriaterületet, amelyre a programon belül már nincs szükség.

A szemétgyűjtés megerősíti, hogy a program még mindig a memóriakvótán belül van. Megakadályozza, hogy a fejlesztők manuálisan kezeljék a program memóriáját, ami minimalizálja a memóriával kapcsolatos hibákat.

Mi a kivételkezelés?

Válasz: A kivételkezelés a váratlan eseményekre való reagálás módszere, miközben egy számítógépes program fut. A programozóknak „kezelniük” kell a nem kívánt eseményeket (kivételeket), hogy megakadályozzák a rendszer vagy program összeomlását. E módszer hiányában a kivételek megzavarhatják a programok közös működését, és hatástalansághoz vagy kockázatokhoz vezethetnek.

Mi az a try/catch blokk?

Válasz: Try or catch azok a kulcsszavak, amelyek egy program végrehajtása során kódolási vagy adathibák miatti kivételkezelést jelölik.

  • A try blokk az a kódblokk, ahol kivételek fordulnak elő
  • A fogási blokk kezeli és a blokkolást próbálja ki

A try and catch utasításokat gyakran használják különféle programozási nyelvekben, beleértve a C++-t is. C#, Java, SQL és JavaScript. Minden try utasítás illeszkedik egy catch utasításhoz, hogy kezelje a végrehajtást. Íme még néhány dolog, amit érdemes megjegyezni a try and catch kijelentéseknél:

  • A try blokkot a catch blokk követi.
  • A try blokkot legalább egy catch blokk követi.
  • A try blokkot egy másik try blokk követi, majd a catch blokk követi.

Következtetés

Az OOP elengedhetetlen fogalom a programozók számára. Az alapos elsajátítása segít abban is, hogy jól programozzon az OOP-fogalmakat használó nyelveken.

Ha interjúra vagy tesztre készül, a fenti interjúkérdések és válaszok segítenek felfrissíteni az olyan OOP-fogalmak megértését, mint az osztályok, objektumok, beágyazás, polimorfizmus, öröklődés, absztrakció stb. Így magabiztosan nézhet szembe az interjúkkal, és sikeresen átvészelheti karrierjét.

Megtekinthet néhány ilyen SQL-interjúkérdést is.