OOP fogalmak

    • Objektum orientált program: egy objektum orientált program egymással kommunikáló objektumok összessége, melyben minden objektumnak megvan a maga jól meghatározott feladata.
    • Üzenet, kérelem (message, request): az objektumokat üzenteken keresztül kérjük meg különböző feladatok elvégzésére.
    • Felelősség (responsibility): minden objektumnak megvan a maga jól meghatározott feladata. Az objektum felelős saját feladatainak elvégzéséért.
    • Bezárás, információ elrejtés (encapsulation, information hiding): a feladatok elvégzésének mikéntje az objektum belügye. Az objektummal csak un. interfészen keresztül lehet kommunikálni.
    • Többalakúság (polymorphism): ugyanarra a kérelemre különböző objektumok különbözőképpen reagálhatnak.
    • Osztályozás (classification): az objektum példányokat viselkedésük szerint osztályokba soroljuk.
    • Öröklődés (inheritance): egy adott osztály örökölhet tulajdonságokat és viselkedésformákat egy másik osztálytól. Az utód osztályában csak az ős osztálytól való eltéréseket kell megadni.
    • Futásalatti vagy késői kötés (runtime or late binding): bizonyos operációkról csak futáskor lehet kideríteni, hogy konkrétan melyikre van szükség. Ezek az operációk később kötődnek a programhoz.
    • Objektum: információt tárol és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk, műveletek) összessége, amely felelős feladatai elvégzéséért.
    • Az objektumnak mindig van állapot – ezek az adatok pillanatnyi érétkei. Egy feladat elvégzése után az objektum állapota megváltozhat.
    • Az objektumok egyértelműen azonosíthatóak. Az objektum azonossága független a tárolt értékektől.
    • Az objektum osztály (típus) egy objektum minta, mely alapján objektum példányokat hozhatunk létre. Egy objektum keletkezésekor annak osztálya egyértelműen meghatározott.
    • Üzenet: nem más, mint egy kívülről elérhető metódus (eljárás, vagy függvény) hívása. Mindig a kliens üzen a szervernek.
    • Objektum inicializálása: az objektum kezdeti adatainak megadása, illetve a működéshez szükséges kezdeti tevékenység végrehajtása. A legtöbb nyelven az inicializáló metódus végzi az objektum létrehozását is.
    • A bezárás (egybezárás, egységbezárás) az adatok és metódusok összezárását, betokozását jelenti. Az információ elrejtése azt jelenti, hogy az objektum elrejti belügyeit, s azt csak az interfészén keresztül lehet megközelíteni.
    • Self paraméter: a megszólított objektum memóriacíme. A futó metódus innen tudja, hogy éppen melyik példányon dolgozik. Egymásból hívott metódusok esetén a Self automatikusan továbbadódik.
    • Két objektum ismertségi, vagy használati kapcsolatban van egymással, ha azok léte egymástól független és legalább az egyik ismeri, illetve használja a másikat.
      Két objektum tartalmazási (egész-rész) kapcsolatban van egymással, ha az egyik objektum tartalmazza, vagy birtokolja a másik objektumot.
    • Az objektumokat és azok kapcsolatait ábrázoló diagrammot objektumdiagramnak vagy példánydiagramnak nevezzük.
    • Az osztályokat és azok kapcsolatait ábrázoló diagramot osztálydiagramnak nevezzük. Az osztálydiagram az összes lehetséges objektumdiagram általánosítása. Az objektumdiagram az osztálydiagram egy előfordulása, példánya.
    • Míg az objektumdiagram a feladat bizonyos objektumait és azok kapcsolatait ábrázoló diagram addig az együttműködési diagram olyan objektumdiagram, melyen az üzenetek is fel vannak tüntetve. Az együttműködési diagram egy objektumnak küldött üzenet futását követi nyomon: az üzenetek sorszámozhatjuk, amely alapján az üzenet végrehajtása nyomon követhető. Az objektum, illetve az együttműködési diagram végleges változatán az osztályoknak feltétlenül szerepelniük kell.
    • Az osztálydiagram egy statikus modell, mely a rendszerben előforduló összes osztályt és azok kapcsolatait ábrázolja. Az osztálydiagramon minden osztály pontosan egyszer szerepel. Az osztálydiagramon szereplő osztályok jellemzőit részletesebben ki kell fejteni. Az osztály dokumentációját osztályleírásnak nevezzük. Az osztálydiagramon csak annyi konténert és őst tüntetünk fel, amennyi az egyértelműséghez és a megértéshez szükséges.
    • A használati eset a rendszer egy használati módjára vonatkozó eseménysor, tranzakció általános leírása.
    • A használati eset forgatókönyve az általános használati eset egy konkrét esete, példánya.
    • Specializálás: az a folyamat melyben a objektum leírásához egyedi jellemzőket használunk.
    • Általánosítás: az a folyamat, melyben több objektum leírásból emeljük ki a közös jellemzőket.
    • Öröklődés: egy már meglévő osztály továbbfejlesztése. A már meglévő osztály az ős osztály, a továbbfejlesztett pedig a leszármazott, származtatott, illetve utód osztály. Az utód az ősosztály specializálása.
    • Osztályhierarchia diagram: csak öröklési kapcsolatokat ábrázoló osztálydiagram.
    • Többszörös öröklés: lakás és kocsi: lakókocsi. Pl. C++ programozási nyelvben. Ki lehet váltani egyszeres örökléssel, illetve ismeretségi, tartalmazási kapcsolatok felépítésével.
    • Statikus metódus hívása már a fordító számára egyértelmű címet jelent.
    • Az osztálydeklarációhoz háromféle hozzáférési mód létezik:
      Public: minden metódus használja, akár objektumból, akár öröklésen keresztül.
      Protected: hozzáférés csak öröklésen keresztül.
      Private: csak az osztály saját metódusai férhetnek hozzá.
    • Polimorfizmus (többalakúság, sokalakúság): ugyanarra az üzenetre különböző objektumok különbözőképpen reagálhatnak. Az üzenet küldőjének nem kell tudnia a fogadó objektum osztályát.
    • Virtuális metódus: melynek címét a program később, futási időben oldja fel. A virtuális metódusokkal elérjük, hogy mindig az aktuális objektum osztályának metódusa fog futni.
    • Konstruktor: ebben a metódusban elvégezzük az objektum létrehozásával kapcsolatos összes tevékenységet.
    • Destruktor: ebben a metódusban elvégezzük az objektum megszűntetésével kapcsolatos összes tevékenységet.
    • Absztrakt metódus: üres virtuális metódus, mely csak örökítési célokat szolgál.
      Absztrakt osztály: örökítési célt szolgáló, absztrakt metódust tartalmazó osztály. Soha nem példányosítjuk.
    • Típuskényszerítés: idegen típus ráhúzása egy változóra, vagy típusra. Pl. egy objektum mutatójára rákényszeríthetjük egy másik objektum mutatójának típusát: PTípus(P) .
    • Konténer objektum: más objektumok egy kollekcióját(csoportját) tárolja és azokon különböző eléréseket, karbantartási műveleteket biztosít. A konténert mesterségesen a kapcsolódó objektum közé kell iktatni.
    • Az újrafelhasználható kódot szoftver komponensnek nevezzük.
    • Az alkalmazói (felhasználói) program egy olyan program, amelyet egy adott számítógépes környezetben, kifejezetten egy speciális feladat elvégzésére készítettek, és amely közvetlenül hozzájárul a feladat megoldásához.
    • A keretrendszer egy osztálykönyvtár, amely bizonyos típusú alkalmazásokra általános megoldást ad. A keretrendszer egy váz, melyet a program speciális részeivel ki kell egészíteni: keretrendszer + egyedi elemek = alkalmazás.
    • Felhasználói felület: az alkalmazás azon része, amely az ember és a számítógép közötti kapcsolatot biztosítja.
    • Az eseményvezérelt programozás olyan programozás, amely egy eseménybegyűjtő és szétosztó mechanizmuson alapszik. Az objektumok a hozzájuk rendelt eseményeket, eseménykezelő metódusok segítségével lekezelik.
    • Kivételkezelés: a kivétel egy esemény, vagy feltétel, mely bekövetkezése megszakítja a program normális futását. A kivétel objektum tárolja azt az információt, hogy milyen kivétel történt és hol. A kivételes eseményt a program átadja a kivételkezelőnek, amely azt lekezeli. A kivételkezelő a kivételes (általános hiba) esemény bekövetkezése esetén megpróbálja programot megmenteni az összeomlástól, vagy elhárítja hibát, vagy visszaállítja rendszert az előző stabil állapotba.
    • Automatikus szemétgyűjtés: azokban a szoftverekben, amelyekben automatikus szemétgyűjtés van, a programozónak nem kell megszüntetnie a dinamikusan létrehozott változókat.

      Angster Erzsébet nyomán

       

      5 hozzászólás a következőhöz: “OOP fogalmak

      1. LAca szerint:

        nem vagyok nagyon eros a magyar szakszovegben, de ugy erzem itt most nincs minden rendben.. az angol _software development methodology_ szavak forditasanak tunik a _szoftverfejlesztesi methodologia_, de inkabb _szoftverfejlesztesi modszertan_, amit meg szebbnek erzek.. de nem ezen akarok rugozni.. hanem azon, hogy az OO nem modszertan, hanem _programming paradigm_. magyarul leggyakrabban _programozasi paradigma_-nak forditjak. a modszertanok praktikak osszesegenek tekinthetok, a fejlesztes egyel nagyobb fogalmanak a _fejlesztesi processzus_-t szoktak emlegetni. angolul ez a _development process_.

        fejlesztesi modszertan (a szoftverfejlesztesben) mondjuk a Scrum, SSADM, UnifiedProcess vagy az eXtreme Programming.. progamozasi paradigma peldaul a proceduralis programozas, generikus programozas, funkcionalis programozas, logikai programozas es ilyen az objektum orientalt programozas is..

        http://en.wikipedia.org/wiki/Programming_paradigm
        http://en.wikipedia.org/wiki/Methodology_(software_engineering)
        http://en.wikipedia.org/wiki/Software_development_process

      2. Spiller László szerint:

        Kedves LAca!

        Teljesen jogos a hozzászólásod, illetve a megállapításod.
        Általában tényleg objektum orintált paradigmáról, vagy szemléletmódról szoktunk beszélni és valóban az általad említett módszretanoknak kellene itt szerepelniük.
        Egyelőre arra törekedtem, hogy bokros fejvadász teendőim mellett, tartalommal töltsem meg a blogot és utána finomítsak rajta. Ez most itt van, de áthelyezem hamarosan és utána tényleg módszertanokról szeretnék érdeklődni.
        Ha van még olyan honlap amelynek címét megosztod velem, megköszönöm.

        Üdv:

        Laca

      3. Spiller László szerint:

        Kedves LAca!

        Átírtam a fül nevét Szoftverfejlesztési módszertanokról OOP-ra, s ezt még bővíteni is fogom.
        A metodológiáknak pedig majd csinálok egy új fület.

        Üdv:

        Laca

      4. Dave szerint:

        Köszönöm a segítséget! Pont egy ilyen rövid tömör összefoglalót kerestem!

      5. Kredit szerint:

        Köszönöm én is!

      Vélemény, hozzászólás?

      Adatok megadása vagy bejelentkezés valamelyik ikonnal:

      WordPress.com Logo

      Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

      Twitter kép

      Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

      Facebook kép

      Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

      Google+ kép

      Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

      Kapcsolódás: %s