fel
le

Magasszintű Programozási Nyelvek II.

A jelölt, kihúzott témáját részletesen dolgozza ki, úgy, hogy feleletével átfogó képet adjon a témával kapcsolatban! A témához tartozó fogalmakat szakszerű magyarázza el, és használja. Törekedjen a téma átgondolt, rendszerezett, önálló előadására. Példákon keresztül is tudja használni az adott fogalmakat.

Tematika részletezése

Az Objektum Orientált Programozási nyelvek története, legfontosabb alapfogalmak

  • Ismertesse az OOP nyelvek és a procedurális nyelvek viszonyát.
  • Ismertesse az OOP három alapelvét, azok jelentőségét.

Adatrejtés és következményei

  • Ismertesse a mező fogalmát.
  • Ismertesse a védelmi szinteket, kapcsolatát a hatáskör fogalmával.
  • Ismertesse az adatrejtés értelmét, jelentőségét.
  • Ismertesse az elrejtett mező kívülről történő írási és olvasási lehetőségeit, azok szokásos megoldását metódusokon keresztül.
  • Ismertesse a hibás értékre reagálás szokásos megoldását OOP-ben (kivétel dobása)

Property

  • Ismertesse a mező fogalmát.
  • Ismertesse az adatrejtés értelmét, jelentőségét.
  • Ismertesse a property fogalmát, jelentőségét, használatát az adatrejtés témakörében.
  • Ismertesse a property-k készítésének szintaktikai, és szemantikai szabályait.
  • Ismertesse a property-k használatának szintaktikai, és szemantikai szabályait.
  • Ismertesse a propety-k hibajelzésének megoldását (kivétel dobása).
  • Hasonlítsa össze a property-n keresztüli megoldást a metóduson keresztüli megoldással.

Osztályszintű és példányszintű mezők. Konstansok.

  • Ismertesse a különbséget az osztályszintű és példányszintű mezők között, különös tekintettel az élettartam kérdésekre.
  • Ismertesse a példányszintű mezők deklarálásának és felhasználásának szintaktikáját osztályon belül és kívül.
  • Ismertesse az osztályszintű mezők deklarálásának és felhasználásának szintaktikáját osztályon belül és kívül.
  • Ismertesse a konstans fogalmát, deklarációját, hasonlóságát az osztályszintű mezőkkel.

Osztályszintű és példányszintű metódusok

  • Ismertesse a példányszintű metódusok létrehozásának és felhasználásának szintaktikai és szemantikai szabályait.
  • Ismertesse az osztályszintű metódusok létrehozásának és felhasználásának szintaktikai és szemantikai szabályait.
  • Ismertesse a metódusok belsejéből más metódusok meghívhatóságának problémakörét.
  • Ismertesse a metódusok belsejéből más, osztály belsejében deklarált mezők elérhetőségének problémakörét.
  • Ismertesse, milyen feltételek mellett készítünk osztályszintű, és milyenek mellett példányszintű metódusokat.
  • Ismertesse a ’this’ kulcsszó, és a metódusok kapcsolatát.

Öröklődés szabályai és alkalmazása mezők-re

  • Ismertesse az öröklődés szabályait.
  • Ismertesse a mezők öröklődési szabályait példányszintű mezők esetén, a különböző védelmi szintek esetén.
  • Ismertesse a mezők öröklődési szabályait osztályszintű mezők esetén, a különböző védelmi szintek esetén.
  • Ismertesse a mezők újradefiniálási lehetőségeit a különböző védelmi szintek esetén.

Öröklődés szabályai és alkalmazása metódusokra

  • Ismertesse az öröklődés szabályait.
  • Ismertesse a metódusok öröklődési szabályait példányszintű metódusok esetén, a különböző védelmi szintek esetén.
  • Ismertesse a metódusok öröklődési szabályait osztályszintű metódusok esetén, a különböző védelmi szintek esetén.
  • Ismertesse a metódusok újradefiniálási lehetőségeit a különböző védelmi szintek esetén, a paraméterlista változása és nem változása esetén (overloading szabály, virtuális metódusok, egyszerű felüldefiniálás esete)
  • Ismertesse a metódusok hívása esetén hogyan dől el, melyik metódus kerül végrehajtásra.

Korai és késői kötés

  • Ismertesse a korai kötés lényegét, alkalmazását az OOP kódban. Adjon példát, amikor a korai kötés ’hibás’ működésűvé válik. Ismertesse ennek körülményeit.
  • Ismertesse a késői kötés lényegét, alkalmazását az OOP kódban.
  • Ismertesse, hogy dől el, hogy melyik kötés lesz korai, melyik késői.
  • Ismertesse a késői kötés működésének támogatását VMT és DMT táblák esetén. Hasonlítsa össze a két technikát (előnyök, hátrányok).
  • Ismertesse a VMT és DMT táblák készítésének módszerét, helyigényeit. Ismertesse, hogy amennyiben van lehetőségünk a választásra, mely szempontok szerint válasszuk az egyiket, vagy a másikat.

Konstruktorok

  • Ismertesse a konstruktor fogalmát, feladatait.
  • Ismertesse, hogyan lehet konstruktor írása nélkül is alaphelyzetbe állítani az objektum-mezőket, illetve milyen esetekben nem működik ez az alternatív módszer.
  • Ismertesse a konstruktor írás szintaktikai szabályait.
  • Ismertesse az alapértelmezett konstruktor fogalmát.
  • Ismertesse hogyan hívhat meg egy konstruktorból másik saját osztálybeli, illetve ős osztálybeli konstruktort.
  • Ismertesse, hogyan és miként hívjuk meg a konstruktort példányosításkor, és írja le mely mechanizmus szerint hajtódnak végre a konstuktorok az adott osztályból, illetve annak ősosztályaiban.
  • Ismertesse, milyen körülmények között írunk nem publikus konstuktorokat.
  • Ismertesse az object factory fogalmát.
  • Ismertesse, lehet-e konstruktorokból más, osztályszintű és példányszintű metódusokat meghívni.
  • Ismertesse az osztályszintű konstruktor fogalmát, írásának szintaktikai szabályait, hívásának szemantikai szabályait.
  • Ismertesse, milyen lehetőség van a konstruktor írása során a hibajelzésre, amikor is a konstruktor nem képes az adott paraméter-értékeknek megfelelő objektum-példányt létrehozni.

Destruktor

  • Ismertesse a destruktor fogalmát, feladatait.
  • Ismertesse a destruktor irásának szintaktikai szabályait.
  • Ismertesse a destruktor hívásának szemantikai (működési) szabályait.
  • Ismertesse a destruktor és a GC kapcsolatát.
  • Ismertesse a destruktor és a Finalize() metódus kapcsolatát.

THIS kulcsszó

  • Ismertesse a this (más nyelveken self) kulcsszó fogalmát.
  • Ismertesse a this kulcsszó használatának lehetőségeit példányszintű metódus belsejében.
  • Ismertesse a this kulcsszó használatának lehetőségeit osztályszintű metódus belsejében.

Típuskompatibilitás

  • Ismertesse az OOP területén értelmezett típuskompatibilitás fogalmát.
  • Ismertesse az Object típus kapcsolatát a típuskompatibilitással, ennek használatát kollekciók (listák, verem, sor, stb.) fejlesztésekor.
  • Ismertesse a statikus típusfelismerés, és a mezők használata, metódusok hívása (korai kötés) során fellépő problémás eseteket.
  • Ismertesse a virtuális metódusok (késői kötés) hogyan viselkednek statikus típusfelismerés környezetben.
  • Ismertesse a dinamikus típus azonosítás lehetőségét (IS operátor).
  • Ismertesse a dinamikus típuskényszerítés lehetőségeit (régi típusú, AS operátoros), ennek lehetséges veszélyeit.

Absztrakt osztályok

  • Ismertesse az absztrakt osztályok fogalmát, jellemzőit.
  • Ismertesse az absztrakt osztályok és a virtuális metódusok technikák előnyeit, hátrányait, hasonlóságokat, különbségeket egymással szemben.
  • Ismertesse az absztrakt metódusok fejlesztésének szintaktikai előírásait, hívásának szemantikai szabályait.
  • Ismertesse az absztrakt osztályokra, és gyermekosztályaira vonatkozó további szabályokat.

Sealed kulcsszó

  • Ismertesse a sealed kulcsszó jelentőségét, használatának szintaktikai, szemantikai szabályait.

Indexelő

  • Ismertesse az indexelő fogalmát.
  • Ismertesse az indexelő készítésének szintaktikai szabályát, használatának szintaktikai és szemantikai szabályait.
  • Mondjon példákat a BCL-ben már eleve létező indexelőkre.

Interface

  • Ismertesse az interface fogalmát.
  • Ismertesse, milyen elemekből épülhet fel egy interface, mely elemeknek mi a szintaktikai szabályai.
  • Ismertesse az interface felhasználását, jelentőségét az OOP stílusú programokban.
  • Ismertesse a ’interface implementálás’ fogalmát, szabályait.
  • Ismertesse, milyen alternatív megoldást ismer az interface-t nem támogató OOP nyelvekben, ennek milyen hátrányait ismeri.

Kivételkezelés

  • Ismertesse milyen egyéb (hagyományos) hibajelzési technikákat ismer, melyiknek mik a korlátai, hátrányai.
  • Ismertesse a kivétel mint hibajelzési technika jellemzőit.
  • Ismertesse a kivétel programozott módon történő előidézésének (kivétel feldobása) technikáját, annak szintaktikai szabályát, szemantikai következményeit.
  • Ismertesse a kivétel kezelésének módszerét, annak szintaktikai és szemantikai szabályait.

Boxing és unboxing

  • Ismertesse a boxing művelet értelmét, hol és hogyan használja ezt a rendszer.
  • Ismertesse az unboxing művelet értelmét, hol és hogyan használja ezt a rendszer.

Partial Class

  • Ismertesse, mi az a partial class, hogyan működik, mire alkalmazható.

Operátor-overloading

  • Ismertessük az operátor fejlesztés lehetőségeit, jelentőségét.
  • Ismertessük az unáris operátor fejlesztésének szintaktikai és szemantikai szabályait, hívását.
  • Ismertessük az bináris operátor fejlesztésének szintaktikai és szemantikai szabályait, hívását.
  • Ismertessük az konverziós operátor fejlesztésének szintaktikai és szemantikai szabályait, hívását.
  • Hasonlítsuk össze az operátorok fejlesztésének, és a metódusok fejlesztésének és használatának lehetőségeit ezeken a területeken.

DLL készítése és használata

  • Ismertessük a Win32-es DLL jellemzőit, előnyeit, hátrányait.
  • Ismertessük a .NET-es DLL (Assembly) jellemzőit, előnyeit, hátrányait.
  • Ismertessük a .NET DLL fejlesztésével kapcsolatos tudnivalókat, különös tekintettel a kiegészítő védelmi szintek jellemzőire.
  • Ismertessük hogyan lehet egy project fejlesztése közben felhasználni egy .NET DLL –t?
  • Ismertessük, milyen támogatás van egy (akár idegen) .NET DLL használatára a Visual Studio-ban fejlesztés közben.
  • Ismertessük a DLL fejlesztése során milyen dokumentációs lehetőségeink vannak.

Callback függvények

  • Ismertesse a callback függvény fogalmát, ennek jelentőségét, felhasználhatóságát OOP környezetben.
  • Ismertesse a callback függvények kezelésével kapcsolatos ismerteket.
  • Ismertesse, hogy lehet egy darab callback függvényt kezelni mint paraméter, mint ilyen típus mező.
  • Ismertesse, hogyan tud több callback függvényt kezelni egy időben lista segítségével.
  • Ismertesse, hogyan tud több callback függvényt kezelni egy időben event (esemény) segítségével.
  • Ismertesse a callback függvények kezelése közötti különbségeket 1.0 és 2.0 verziójú Framework esetén.
  • Ismertesse a TIE osztály fogalmát, jelentőségét.
  • Hasonlítsa össze a TIE osztályok, a virtuális metódusok, és az absztrakt metódusok témakörét.

Generic típusok

  • Ismertesse a Generic típus fogalmát, készítésének szabályait.
  • Ismertesse a Generic típus felhasználását a programozás során.
  • Ismertesse, milyen Generic típusokat ismer a .NET 2.0 Framework-ből, hasonlítsa össze ezek használhatóságát a régebbi megoldásokkal.

Névterek

  • Ismertesse a névterek jelentőségét.
  • Ismertesse a névterek kialakításának lehetőségét, névtér névképzési szabályait.
  • Ismertesse a using kulcsszó szerepét, és a névtérütközés problémáját.
  • Ismertesse a using kulcsszó segítségével hogyan lehet névtér-aliasokat létrehozni és használni.
  • Ismertesse a globális névtér fogalmát, és veszélyeit.
  • Ismertesse, hogyan lehet egy névtér tartalmát több file-ba szétosztani.

Eger, 2007.11.10

Hernyák Zoltán
2013-03-17 20:03:05