Osztályok és objektumok, Öröklés és Példányosítás Flashcards
Mi az OOP fogalma?
Olyan programozási technika, amely a programokat objektumokból építi fel. A program működése tulajdonképpen objektumok (minden objektumnak megvan a jól meghatározott feladata) kommunikációját jelenti. Legfontosabb alapelvei: egységbezárás, öröklődés, polimorfizmus.
mi az osztály?
Osztály (Class): Az osztály egy felhasználói típus, amelynek alapján példányok (objektumok) hozhatók létre. Az osztály alapvetően adat és metódus (művelet) definíciókat tartalmaz.
Mi az objektum?
Objektum (példány): Információt (adatokat) tárol és kérésre műveleteket végez. Van állapota, viselkedése és futásidőben azonosítható. Egy osztály példánya.
Mi az osztálydeklaráció kulcsszava
class
mutass példát egy osztályra
class Person { // Access specifier public: Person(string inputName){ name = inputName; } // Data Members string name;
// Member Functions() void printname() { cout << "Name is: " << name; } };
Az osztály tagjai.
Mik a mezők?
mezők: az objektum aktuális állapotát tárolják
Mik a metódusok?
metódusok: valamilyen művelet végeznek el, ez lehet mezők értékének lekérdezése vagy megváltoztatása az adott objektumon
Mik a konstruktorok?
konstruktorok: az objektum létrehozásakor végzi a mezők beállítását általában, de bármilyen logikát lehet benne implementálni, legtöbbször tényleg mezők kezdőértékének beállítását végzi.
Mezők
Mik a mezők jellemzői?
Definiáláskor meg kell adni a mezőben tárolandó adat típusát – Nevet kell kapjon a mező, mivel ezen a néven lehet rá hivatkozni később – A definícióban van lehetőség kezdőérték beállításra is – Kezdőértéket még konstruktorban vagy inicializáló blokkban is meg lehet adni.
Metódusok
egy metódus definiálásakor mire kell figyelni?
Minden metódus/ függvény – Definiáláskor meg kell adni a visszaadott érték típusát – Visszaadott érték hiányában – ekkor eljárásról beszélünk – a definícióban a void kulcsszót kell megadni
Mire kell figyelni ha egy metódusnak adtunk visszatérési értéket?
Ha van visszaadott érték, akkor kötelezően kell paraméteres return utasításnak is szerepelnie a metódusban (több is szerepelhet), és a vezérlésnek mindenképpen el kell érnie
Eljárásnál miért nem szükséges a return?
Eljárásnál nem szükséges kiírni a return utasítást, a fordító automatikusan elhelyez egyet a metódus utolsó végrehajtott utasítása és a blokkzáró zárójel közé
Mit lehet csinálni a metódusokkal ugyanazon a néven?
Ugyanazon a néven, de más paraméterezéssel (paraméterek típusa, darabszáma) lehet egyszerre több metódust is definiálni (metódusok túlterhelése)
Mi jellemző a private típusú metódusokra?
private minősítésű metódust más típusú objektumból kívülről nem lehet elérni, csak az adott, vagy azonos típusú objektumok metódusai tudnak hozzáférni, meghívni.
Hatáskör:
Mit tudsz a hatáskörről az osztályokkal kapcsolatban?
Minden osztály egy önálló osztály-hatáskört definiál. (Egységbezárás alapelve!) A meződeklarációk lokálisak az osztályhatáskörre nézve. A tagfüggvények egy hatáskörben vannak az adattagokkal => használhatják azokat!
Osztály használata:
hogyan zajlik egy osztály használata?
Az osztálynév típusnévként viselkedik, és minden eddig ismert deklarációs konstrukcióban használható. Objektum: az osztály egy előfordulása. Például: osztály típusú változó
Hogy lehet a tagra hivatkozni?
Hivatkozás a tagokra Analóg a struktúrák kezelésével. Tehát: objektumnév.mező vagy objektum_pointer->mező A mező lehet adattagra való hivatkozás (pontosan úgy, mint a struktúránál), tagfüggvény neve és aktuális paraméter-listája
Mik az osztály Hozzáférést szabályozó módosítói 1.?
public: a mező írható/olvasható bármelyik másik objektumpéldányból