11. Objektumelvű programozási nyelvek Flashcards

1
Q

Programozási paradigma

A

Programozási mód. Alapvetően a program felépítésére használt eszközkészletet
jelenti, vagyis milyen egységek képezik a program alkotóelemeit. (moduláris
programozás, objektumorientált programozás, általánosított programozás,
aspektusorientált programozás stb.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Absztrakt adattípus

A

Az adattípus leírásának legmagasabb szintje, amelyben az adattípust úgy
specifikáljuk, hogy az adatok ábrázolására és a műveletek implementációjára
semmilyen előírást nem adunk. Lehetőleg matematikai fogalmakat használva írjuk
le az adattípust (halmazok és ezeken értelmezett műveletek).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Absztrakció

A

Elvonatkoztatás. Segítségével privát implementációkat rejthetünk el egy nyilvános
interfész mögé.
Példa: java.util csomagban List interfész és az interfészt implementáló
ArrayList, illetve LinkedList osztályok. Az absztrakció lehetővé teszi, hogy
mindkét osztály példányait ugyanazon List interfész műveletein keresztül
kezeljük.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Objektumorientált programozás

A

Olyan programozási paradigma, amely a programokat objektumokból építi fel. A
program működése tulajdonképpen objektumok kommunikációját jelenti.
Legfontosabb alapelvei: egységbezárás, öröklődés, polimorfizmus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Osztály

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Objektum (példány)

A

Információt (adatokat) tárol és kérésre műveleteket végez. Van állapota, viselkedése és futásidőben azonosítható.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Üzenet

A

Objektumhoz továbbított kérés. Válaszként az objektum végrehajtja a kért
műveletet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Egységbezárás

A

Az adatok és a metódusok osztályba való összezárását jelenti. Tulajdonképpen az
objektum egységbezárja az állapotot (adattagok értékei) a viselkedésmóddal
(műveletekkel). Következmény: az objektum állapotát csak a műveletein keresztül
módosíthatjuk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Információ elrejtése

A

Az objektum elrejti az adatait és bizonyos műveleteit. Ez azt jelenti, hogy nem
tudjuk pontosan, hogy egy objektumban hogyan vannak az adatok ábrázolva, sőt a
műveletek implementációit sem ismerjük. Az információk elrejtése az objektum
biztonságát szolgálja, amelyeket csak a ellenőrzött műveleteken keresztül érhetünk
el.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Származtatás (örökítés)

A

Olyan osztályok között értelmezett viszony, amely segítségével egy általánosabb
típusból (ősosztály) egy sajátosabb típust tudunk létrehozni (utódosztály). Az
utódosztály adatokat és műveleteket (viselkedésmódot) örököl, kiegészíti ezeket
saját adatokkal és műveletekkel, illetve felülírhat bizonyos műveleteket. A kód
újrafelhasználásának egyik módja. Megkülönböztetünk egyszeres és többszörös
örökítést.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kód újrafelhasználása

A

Adott osztály felhasználása származtatás, aggregáció, illetve kompozíció révén új osztályok létrehozására.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Dinamikus (késői) kötés

A

Futásidejű hozzárendelése a hívott metódusnak az objektumhoz. (Pl. C++: virtuális
függvények, Java: példánymetódusok) (Lassú)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Helyettesíthetőség

A

Ha S altípusa a T típusnak (S osztályt a T osztályból származtatjuk), akkor a T
osztálybeli példányokat helyettesíthetjük S osztálybeli példányokkal, anélkül, hogy
programunk helyességét veszélyeztetnénk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Szoftver újrafelhasználása

A

Függvénykönyvtárak. Osztálykönyvtárak. Keretrendszerek.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Statikus (korai) kötés

A

Fordításidejű hozzárendelése a hívott metódusnak az objektumhoz. (Pl. C++: nem
virtuális függvények, Java: osztálymetódusok- statikus metódusok) (Gyors)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Metódusok túlterhelése

A

Több azonos nevű, különböző szignatúrájú függvény. A függvényhívás aktuális
paraméterei meghatározzák, hogy melyik függvény fog meghívódni. Ezt már a
fordításidőben eldől (statikus, fordításidejű kötés).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Metódusok felülírása

A

Egy osztályhierarchián belül az utódosztály újradefiniálja az ősosztály metódusát.
(azonos név, azonos szignatúra). Ha ősosztály típusú mutatón vagy referencián
keresztül érjük el az osztályhierarchia példányait és ezen keresztül meghívjuk a
felülírt metódust, akkor futási időben dől el, hogy pontosan melyik metódus kerül
meghívásra. (dinamikus, futásidejű kötés).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Absztrakt osztály

A

Olyan osztály, amelynek van legalább egy absztrakt művelete. Felületet határoz
meg és nem lehet példányosítani. Absztrakt osztály az absztrakt műveleteinek
implementálását az utódosztályokra bízza.

19
Q

Konkrét osztály

A

Olyan osztály, amely nem tartalmaz absztrakt műveletet. Példányosítható.

20
Q

Interfész (Java)

A

Viselkedésmódot definiál. Gyakorlatilag egy művelethalmaz deklarációját jelenti.
Ha egy osztály implementál egy adott interfészt, akkor példányai az interfészben
meghatározott viselkedéssel fognak rendelkezni. Csak konstans adattagokat
tartalmazhat és minden tagja nyilvános.

21
Q

Objektum intefész

A

Meghatározza az objektummal végezhető műveletek halmazát.

22
Q

Polimorfizmus

A

Többalakúság. Egy típuselméleti fogalom, amely szerint egy ősosztály típusú változó hivatkozhat ugyanazon közös ősosztályból származó (vagy ugyanazon
interfészt megvalósító) osztályok példányaira.
A polimorfizmus lehet statikus és dinamikus.
(a) statikus polimorfizmus: metódusok túlterhelése, függvénysablonok, osztálysablonok. Statikus, fordításidejű kötés.
(b) dinamikus polimorfizmus: metódusok felülírása. Dinamikus, futásidejű kötés.

23
Q

Konstruktor

A

Az a művelet, amely inicializálja az objektumot. Automatikusan hívódik. Egy
osztályhoz annyiféle konstruktort készítünk, ahányféle képpen lehetővé tesszük a
példányok inicializálását .

24
Q

Destruktor

A

A konstruktorral ellentétes művelet, általában a konstruktorban lekötött
erőforrásokat szabadítja fel. Az objektum megsemmisítése előtt hajtódik végre és
automatikusan hívódik.

25
Q

Függőség

A

Komponensek közötti függőség mértéke. Megkülönböztetünk laza és szoros
csatolású rendszereket. A laza csatolású rendszerek esetében, a rendszer valamely
komponensének változása nem vonja maga után a többi komponenes módosítását.

26
Q

Osztályszintű (statikus) tagok

A

Statikus tagok= statikus adattagok + statikus metódustagok
A statikus adattagok, olyan adatok, amelyeket az adott osztály példányai közösen
használnak (osztott). A statikus műveletek olyan műveletek, amelyek az
argumentumaikon illetve az osztály statikus adattagjain dolgoznak. Ezek a tagok
már példányok létrehozása előtt használhatók.

27
Q

Aggregáció

A

Rész-egész kapcsolat. A részek alkotják az egészet. Például az autó motor, váz és
kerekek aggregációja. A részek túlélhetik az egészet.

28
Q

Kompozíció

A

Sajátos aggregáció, amikor a rész szorosan hozzátartozik az egészhez. A részek
nem élik túl az egészet. Például az emberi agy szorosan hozzátartozik az emberhez.

29
Q

Delegálás

A

Implementációs mechanizmus, melynek során egy objektum továbbítja (delegálja)
a kérést egy másik objektum fele. A delegált objektum fogja feldolgozni a kérést.
Példa: Java eseménykezelés (az eseményfigyelő fele továbbítódik a kérés)

30
Q

Tároló (Konténer)

A

Olyan típus, amely objektumok tárolását biztosítja. A tárolási funkció mellett
karbantartó műveleteket is biztosít.

31
Q

Bejáró (Iterátor)

A

Olyan típus, amely pozíciót határoz meg egy halmazban (tároló, adatfolyam).
Műveletein keresztül biztosítja a tároló bejárását, azaz a tárolt elemek egymás
utáni feldolgozását.

32
Q

Algoritmus (C++ concept)

A

Általánosan megvalósított függvény, amely minimális követelményt támaszt azon
adatokkal szemben, amelyeken végrehajtódik.

33
Q

Függvényobjektum
(C++ concept)

A

Függvényként viselkedő objektum. Az az előnye a függvénymutatóhoz képest,
hogy mint objektum, állapotot is tárol, nemcsak függvényként viselkedik.
Megvalósítás: olyan osztállyal, amelyben értelmezzük a függvényhívás operátort.
Ezen kívül az osztály tartalmazhat adattagokat és más segédműveleteket is.

34
Q

Sorozat típusú tároló (C++ concept)

A

Olyan tároló, amelyben minden elemnek van egy rögzített pozíciója, amelyet a
beszúrás helye és ideje határoz meg.

35
Q

Asszociatív tároló (C++ concept)

A

Olyan tároló, amelyben az elemek valamilyen rendezettségi kritérium szerint
vannak tárolva. A beszúrás helyét nem a beszúrás ideje, hanem a beszúrt elem értéke határozza meg.

36
Q

Függvénysablon (C++ concept)

A

Típusparaméterekkel ellátott függvény, amely egy függvénycsaládot határoz meg.

37
Q

Osztálysablon (C++ concept)

A

Típusparaméterekkel ellátott osztály, amely egy típuscsaládot határoz meg.

38
Q

Virtuális függvény (C++ concept)

A

Polimorfikus viselkedést megvalósító függvény. A virtual kulcsszó segítségével
kell bekapcsolni egy adott művelet többalakúságát.

39
Q

Tiszta virtuális függvény (C++ concept)

A

Virtuális függvénydeklaráció. Absztrakt művelet, amelynek az adott szinten nincs
megadva az implementációja. Felületet meghatározó osztályokban használjuk és az
utódosztályok fogják implementálni.

40
Q

Inline függvények (C++ concept)

A

Olyan függvények, amelyeket a fordító a hívás helyén kifejt, vagyis nem történik
függvényhívás, hanem a hívás helyére behelyettesítődik a függvény kódja.

41
Q

Konstans tagfüggvények (C++ concept)

A

Olyan függvények, amelyek nem módosítják az objektum állapotát. Például a
getAttribute típusú metódusok.

42
Q

Privát örökítés (C++ concept)

A

Hozzáférés-szűkítő hatása van. Az ősosztálytól átvett adat és metódustagok privát
tagokká alakulnak, ezáltal az utódosztály már nem biztosítja az ősosztály által
meghatározott viselkedésmódot. Az utódosztály az ősosztály implementációját
örökli és nem annak interfészét.

43
Q

Barát osztály (C++ concept)

A

Ha A osztály barátja a B osztálynak, akkor az A osztályban ugyanúgy hozzáférünk
a B osztály tagjaihoz (privát és nem privát), mint magában a B osztályban.

44
Q

Sablonspecializáció (C++ concept)

A

Egy osztálysablon sajátosítása adott típusra, amelynek célja vagy az adott típusra
való optimalizálás, vagy az adott típusra előállt rendellenes viselkedés kikerülése.