Szoftver technológia. Feladatgyűjtemény UML. Készítették: Goldschmidt Balázs, László Zoltán, Simon Balázs
|
|
- Krisztina Szekeres
- 8 évvel ezelőtt
- Látták:
Átírás
1 Szoftver technológia Feladatgyűjtemény UML Készítették: Goldschmidt Balázs, László Zoltán, Simon Balázs BME IIT, 2016
2 Tartalomjegyzék 1 Osztálydiagram Komponensdiagram Use-case diagram Állapotátmenet diagram Szekvenciadiagram Kommunikációs diagram Aktivitás diagram Időzítési diagram Package diagram Kollaboráció Rational Unified Process Egyéb feladatok Kollekciók Konkurencia Metaclass Általános BME-IIT 2
3 1 Osztálydiagram Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Swpuv +ski(z: Swpuv) Ulubins #egesz: int +bar(): Wgenc +skoda() Wgenc +bols: boolean #skoda() -bar(w: Wgenc) -dle: Ftolbe +foo(): Qwerty -retx: Qwerty +qz(q: Qwerty) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Ftolbe ski(z:swpuv) metódusa a paraméterül kapott objektumnak csak a ski(z:swpuv) metódusát hívhatja meg, mert a kapott objektumnak nem lehet más metódusa. [ ] Qwerty qz(q:qwerty) metódusa kaphat paraméterül Ftolbe objektumot, mert Ftolbe Qwerty ősének leszármazottja. [ ] Ulubins bar() metódusa nem példányosíthat Qwerty objektumot, mert Qwerty nem függ Ulubinstől. [ ] Van olyan skoda() metódus, amely nem módosíthatja a bols attribútumot, mert bols nem statikus. [ ] Ulubins skoda() metódusának visszatérési érteke Ulubins, mert minden statikus metódus predefinit visszatérési értéke a saját osztályának egy példánya. [ ] Wgenc bar(w:wgenc) metódusa meghívhatja a paraméterül kapott Ftolbe típusú objektum skoda() metódusát, mert skoda package láthatóságú. [ ] Ftolbe foo() metódusa példányosíthat Ftolbe objektumot, mert foo() nem statikus. [ ] Wgenc skoda() metódusa nem hívhat meg minden bar nevű metódust, mert Wgenc nem ismeri Ulubins-t. BME-IIT 3
4 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface> Q +foo( ) S +value +do(v:v) +get( ) -set( ) T 2 <<interface> V U R +bar( ) X +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] X foo(q:q) metódusa kaphat paraméterül T-t, mert T-nek is van foo nevű metódusa. [ ] S set( ) metódusa nem módosíthatja a value attribútumot, mert a láthatóságuk különböző. [ ] V törlésekor törölni kell két T-t is, mert egy U-nak két T komponense van és U a V leszármazottja. [ ] S meghívhatja T foo() metódusát, mert T az S leszármazottja. [ ] X meghívhatja egy Q interfészű objektum foo( ) metódusát, mert X implementálja Q-t. [ ] T létrehozhat U osztályú objektumot, mert S létrehozhat V-t és T az S-nek, U a V-nek leszármazottja. [ ] X foo(q:q) metódusa meghívhatja a paraméterül kapott S get() metódusát, mert S megvalósítja a Q interfészt. [ ] X bar() metódusából meghívhatjuk egy Q interfészű objektum foo( ) metódusát, mert X foo(q:q) metódusából is hívhatjuk egy Q interfészű objektum foo( ) metódusát. BME-IIT 4
5 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> D F +foo( ) +bar( ) G 1..* H -inf +bar(d:d) -im +bar(g:g) B V #q -qux(v:v) +set(v:v) -val +foo(h:h) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] B objektum nem hívhatja meg egy V objektum foo() metódusát, mert V-nek nincs ilyen szignatúrájú metódusa. [ ] G bar(d:d) metódusa meghívhatja egy paraméterül kapott F objektum bar() metódusát, mert F megvalósítja a D interfészt. [ ] G bar(d:d) metódusa kaphat paraméterül H objektumot, mert H-nak van bar() metódusa. [ ] H bar(g:g) metódusa kaphat paraméterül V objektumot, mert V megvalósítja a D interfészt. [ ] B qux(v:v) metódusa módosíthatja a paraméter val attribútumát, mert mind a metódus, mind az attribútum privát. [ ] H bar(g:g) metódusa módosíthatja az im attribútumot, mert az attribútum statikus. [ ] B set(v:v) metódusa nem módosíthatja a q attribútmot, mert a láthatóságuk különböző. [ ] V tartalmazhat G-t, mert V tartalmazhat H-t és minden H-hoz tartozik G. BME-IIT 5
6 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface> Q +foo( ) S +value +do(v:v) +get( ) -set( ) T 2 <<interface> V U R +bar( ) X +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] T létrehozhat U osztályú objektumot, mert S létrehozhat V-t és T az S-nek, U a V-nek leszármazottja. [ ] X foo(q:q) metódusa kaphat paraméterül T-t, mert T-nek is van foo() metódusa. [ ] X foo(q:q) metódusa meghívhatja a paraméterül kapott S get() metódusát, mert S megvalósítja a Q interfészt. [ ] V törlésekor törölni kell két T-t is, mert egy U-nak két T komponense van és U a V leszármazottja. [ ] T nem függ U-tól, mert T nem függ V-től sem. [ ] X meghívhatja egy Q interfészű objektum foo( ) metódusát, mert X implementálja Q-t. [ ] X bar() metódusából meghívhatjuk egy Q interfészű objektum foo( ) metódusát, mert X foo(q:q) metódusából is hívhatjuk egy Q interfészű objektum foo( ) metódusát. [ ] S set( ) metódusa nem módosíthatja a value attribútumot, mert a láthatóságuk különböző. BME-IIT 6
7 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» A + foo():b B + foo():b C - x : int + baz( b:b ) # baz( d:d ) - garply() 1 c D + y : double + qux( a:a ) E # z : C name grault( e:e ) 1 F + bar( d:d ) + corge() A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] D implementálja az A interfészt, mert A és B interfésze megegyezik. [ ] F corge() metódusa nem módosíthatja D y attribútumát, mert D y attribútuma statikus. [ ] E grault(e:e) metódusa nem hívhatja meg e z attribútumának baz(b:b) metódusát, mert a grault() statikus. [ ] Egy F objektum pontosan egy E objektumot ismer, mert egy E objektum pontosan egy F objektumot ismer. [ ] C foo() metódusa példányosíthat B típusú objektumot, mert C függ D-től és D a B leszármazottja. [ ] F bar(d:d) metódusából nem hívható meg c baz(b:b) metódusa, mert C baz(b:b) metódusa nem kaphat paraméterül D típusú objektumot. [ ] C baz(d:d) metódusa nem hívhatja meg C garply() metódusát, mert C baz (d:d) metódusa nem statikus. [ ] D qux(a:a) metódusa nem hívhatja meg egy paraméterül kapott C típusú objektum baz(b:b) metódusát, mert A nem helyettesíthető C-vel. BME-IIT 7
8 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> P +foo(): Q <<interface>> Q +bar(q: Q) X +baz(s: S) S -a: int ~b: double +kludge(): S U +d: boolean +qux(w: W) W #c: String +norf() A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] U qux() függvénye kaphat paraméterül S objektumot, mert U ismeri S-et. [ ] W norf() függvénye nem módosíthatja a c attribútum értékét, mert W c attribútuma package láthatóságú. [ ] X baz() függvénye módosíthatja S b attribútumát, mert S b attribútuma nem privát. [ ] X foo() függvénye nem hozhat léte S objektumot, mert a foo() függvényt deklaráló P interfész nem ismeri S-et. [ ] U qux() függvénye nem módosíthatja a d attribútum értékét, mert U d attribútuma statikus. [ ] S kludge() függvénye meghívhatja X baz() függvényét, mert X ismeri S-et. [ ] W bar() függvénye nem hívhatja meg a paraméterül kapott U objektum qux() függvényét, mert W nem ismeri U-t. [ ] W norf() függvénye nem módosíthatja az a attribútum értékét, mert S a attribútuma nem statikus. BME-IIT 8
9 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> R <<interface>> Q +foo(): Q +bar() Z #e: String +quux(w: W) +keew(z: Z) -h 0..* W -x: int +y: double +garply() A +garply() +baz(): Z A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Z foo() függvénye nem hozhat létre A objektumot, mert A nem implementálja a Q interfészt. [ ] Van olyan garply() függvény, amely nem módosíthatja W x attribútumát, mert x statikus. [ ] A baz() függvénye nem példányosíthat W objektumot, mert W absztrakt. [ ] Z keew(). függvénye nem kaphat paraméterül A objektumot, mert Z nem ismeri A-t. [ ] Z quux() függvénye módosíthatja a paraméterül kapott w y attribútumát, mert y publikus.. [ ] A és Z interfésze megegyezik, mert mindkettő implementálja az R interfészt. [ ] Nincs olyan garply() függvény, amely módosíthatja az e attribútumot, mert e nem statikus. [ ] W bar() függvénye nem hívhatja meg A garply() függvényét, mert W nem ismeri Z-t. BME-IIT 9
10 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Bubu +bubu(): Bubu <<interface>> Bibi +bibi(b: Bubu) #i: int -s: Nunu +nunu(b: Bubu) Nini -d: double +nini(n: Nini) #nini(): Nunu Kuku +s: Kuku +kuku(n: Nini) Kiki +kiki(n: Nunu) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Nini bibi függvénye nem kaphat paraméterül Kuku objektumot, mert Bibi nem ismeri Kuku-t. [ ] Van olyan s attribútum, amelyet nem módosíthat Kiki kiki függvénye, mert nem minden s attribútum publikus. [ ] Kuku implementálja a Bubu és Bibi interfészeket, mert Java-ban megengedett az interfészek többszörös öröklése. [ ] Nunu nunu függvénye nem példányosíthat Kiki objektumot, mert Kiki függ Nunu-tól. [ ] Kuku nem példányosítható, mert nem implementálja az absztrakt nini függvényeket. [ ] Kuku és Kiki interfésze megegyezik, mert mindkettő megvalósítja a Bibi interfészt. [ ] Kiki kiki függvénye nem kaphat paraméterül Kuku objektumot, mert ha kapna, az sértené a Liskov-elvet. [ ] Kuku bubu függvénye nem módosíthatja az i attribútum értékét, mert i statikus. BME-IIT 10
11 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> A +foo(a: A) B +quux(b: B) -w: int C +bar(): D D ~d: double +xyzzy() E #e: double +bar(): D F -s: String +norf(f: F) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] D xyzzy() függvénye nem módosíthatja a d attribútum értékét, mert d nem protected. [ ] E bar() függvénye nem hozhat létre F objektumot, mert C bar() függvénye nem hozhat létre F objektumot. [ ] F norf() függvénye nem módosíthatja az s attribútumot, mert F norf() függvénye nem statikus. [ ] B nem ismeri F-et, ezért B quux() függvénye nem kaphat paraméterül F objektumot. [ ] C és D interfésze megegyezik, mert mindkettő implementálja az A interfészt. [ ] F norf() függvénye nem kaphat paraméterül D objektumot, mert D nem az F leszármazottja. [ ] F foo() függvénye nem módosíthatja egy paraméterül kapott E objektum e attribútumát, mert F nem az E leszármazottja. [ ] E tartalmaz D-t, mert C tartalmaz D-t. BME-IIT 11
12 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Zim +zizi(z: Zim) #zu: int Zum +zuzu(): Zam +zaza() Zam +za: boolean #zaza() -zuzu(z: Zam) Zom -zo: double +zozo(): Zem Zem -ze: Zam +zeze(z: Zem) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Van olyan zaza függvény, amely nem módosíthatja a za attribútumot, mert za nem statikus. [ ] Zum zuzu függvénye nem példányosíthat Zem objektumot, mert Zem nem függ Zum-tól. [ ] Zom zozo függvénye példányosíthat Zom objektumot, mert Zom a Zem leszármazottja. [ ] Zum zaza függvénye nem módosíthatja a zu attribútum értékét, mert zu privát. [ ] Zom zizi függvénye nem hívhatja meg Zem zizi függvényét, mert egyiknek sincs zizi függvénye. [ ] Zem zeze függvénye nem kaphat paraméterül Zom objektumot, mert Zom függ Zem-től. [ ] Zam zuzu függvénye meghívhatja a paraméterül kapott Zom típusú objektum zaza függvényét, mert zaza absztrakt. [ ] Zam zaza függvénye nem hívhat meg minden zuzu függvényt, mert Zam nem ismeri Zum-ot. BME-IIT 12
13 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> K +foo(k: K) A B -x: int +bar(): B +foo(b: B) #w: boolean +foo(k: K) +quux(b: B) -c: K C #quux() +foo(k: K) D -s: double +baz() A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] C egyetlen függvénye sem módosíthatja egy paraméterül kapott B típusú objektum w attribútumát, mert C nem függ B-től. [ ] D baz függvénye nem módosíthatja B w attribútumát, mert w statikus. [ ] Van olyan foo függvény, amely nem kaphat paraméterül B típusú objektumot, mert B nem implementálja a K interfészt. [ ] A bar függvénye nem példányosíthat D típusú objektumot, mert D nem függ A-tól. [ ] C quux függvénye nem módosíthatja a c attribútum értékét, mert quux nem privát. [ ] D foo függvénye nem hívhatja meg a paraméterül kapott C objektum foo(k:k) függvényét, mert D nem ismeri C-t. [ ] minden D-ben deklarált függvény módosíthatja az s attribútumot, mert s statikus. [ ] C és D interfésze különbözik, mert D nem implementálja a K interfészt. [ ] D baz metódusa nem módosíthatja B w attribútumát, mert baz statikus. BME-IIT 13
14 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» W + garply( u:u ) : void «interface» U + corge() : void A + x : int + waldo() : W B - z : string + fred() : void + thud( w:w ) : void C - y : double + plugh() : C c 0..* D + xyzzy( a:a ) : C + corge() : void A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] D törlésekor legalább egy C objektumot is törölni kell, mert D tartalmaz C-t. [ ] U interfésze részhalmaza D interfészének, ezért D megvalósítja az U interfészt. [ ] C nem függ U-tól, mert C ősosztálya (A) sem függ U-tól. [ ] A waldo függvénye nem példányosíthat B típusú objektumot, mert B nem implementálja a W interfészt. [ ] C plugh függvénye nem módosíthatja A x attribútumát, mert A x attribútuma protected. [ ] D xyzzy függvénye visszaadhatja eredményként a paraméterként kapott a objektumot, mert C az A leszármazottja. [ ] B fred függvénye nem módosíthatja a z attribútum értékét, mert B z attribútuma nem protected. [ ] B thud függvénye meghívhatja egy paraméterül kapott C típusú objektum plugh függvényét, mert C plugh függvénye virtuális. BME-IIT 14
15 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» X + foo() : Z + bar() : void «interface» Z + bar() : void A - w : int + baz( c:c ) : void + foo() : Z B # u : A + baz( c:c ) : void -qux C + corge( x:x ) : void + waldo() : Z D - v : double + garply( b:b ) : void + hello() : Z A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] B baz metódusa nem hívhatja meg B u attribútumának foo metódusát, mert az A osztály foo metódusa absztrakt. [ ] C corge metódusa kaphat paraméterül D típusú objektumot, ezért a metódus meghívhatja a kapott objektum garply metódusát. [ ] C waldo metódusa virtuális, ezért a B osztály baz függvénye egy paraméterül kapott D típusú objektumon meghívhatja a waldo metódust. [ ] A baz metódusa nem módosíthatja A w attribútumát, mert A baz metódusa nem statikus. [ ] C-nek van bar metódusa, ezért C implementálja a Z interfészt. [ ] D garply metódusa kaphat paraméterül A típusú objektumot, mert A és B interfésze megegyezik. [ ] D hello metódusa nem módosíthatja D v attribútumát, mert D v attribútuma privát. [ ] D garply metódusa nem módosíthatja a b paraméter u attribútumát, mert protected attribútumhoz csak privát és protected metódusok férhetnek hozzá. BME-IIT 15
16 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Bubu +fufu(): Bubu Titi -ra: int #re: double +nunu(): Bubu #pipi(): double +gogo 1 <<interface>> Jojo +dodo(): Zizi 0..* +ti Zizi Nono +mimi(t: Titi) ~no:string +roro(j: Jojo) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Zizi mimi(t:titi) függvénye nem hívhatja meg a t paraméter nunu() függvénye által visszaadott Jojo interfészű objektum dodo() függvényét, mert az sértené a Demeter-törvényt. [ ] Titi pipi() függvénye nem szorozhatja össze a ra és re attribútum értékét, mert privát változóhoz csak privát függvény férhet hozzá. [ ] Zizi a ti.nunu() hívás eredményén hívhat roro(j:jojo) metódust, mert Nono implementálja a Bubu interfészt. [ ] Egy Titi objektum csak egy Jojo interfészű objektumot ismer, mert közöttük lévő asszociáció Jojo oldalán 1-es számosság szerepel. [ ] Nono roro(j:jojo) függvénye kaphat paraméterül Bubu interfészű objektumot, mert Jojo implementálja a Bubu interfészt. [ ] Nono dodo() függvénye nem hozhat létre Zizi objektumot, mert Nono nem ismeri Zizi-t. [ ] Zizi függ Bubu-tól, mert Titi függ Bubu-tól. [ ] Nono dodo() függvénye nem módosíthatja a no attribútum értékét, mert Javában a String típus immutábilis. BME-IIT 16
17 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Xi +zii(x: Xii) Guu #fuu(): Xii Moo +m:int -n:double +raa 0..1 Raa +paa(p: Raa) q:string Wee +w 1 +r 0..* +wee(m: Moo) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Raa nem függ Xii-től, mert Guu nem implementálja a Xii interfészt. [ ] Raa paa(p:raa) függvénye kaphat paraméterül Guu objektumot, mert függvényparaméterként Raa helyettesíthető Guu-val. [ ] Raa paa(p:raa) függvénye nem módosíthatja Moo m attribútumát, mert Moo m attribútuma statikus. [ ] Moo zii(x:xii) függvénye nem szorozhatja össze az m és n attribútumok értékeit, mert az n attribútum privát. [ ] Raa paa(p:raa) függvénye nem hívhatja meg a fuu():xii függvényt, mert az sértené a Pauli-elvet. [ ] Wee wee(m:moo) függvénye nem módosíthatja a q attribútumot, mert q package láthatóságú. [ ] Wee wee(m:moo) függvénye meghívhatja az m paraméter zii(x:xii) függvényét, mert az nem sérti a Demeter-törvényt. [ ] Moo és Xii interfésze megegyezik, mert Moo nem definiál újabb függvényt. BME-IIT 17
18 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface> Q +foo( ) S +value +do(v:v) +get( ) -set( ) T 2 <<interface> V U R +bar( ) X +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] T létrehozhat U osztályú objektumot, mert S létrehozhat V-t és T az S-nek, U a V-nek leszármazottja. [ ] X foo(q:q) metódusa kaphat paraméterül T-t, mert T-nek is van foo() metódusa. [ ] X foo(q:q) metódusa meghívhatja a paraméterül kapott S get() metódusát, mert S megvalósítja a Q interfészt. [ ] V törlésekor törölni kell két T-t is, mert egy U-nak két T komponense van és U a V leszármazottja. [ ] T nem függ U-tól, mert T nem függ V-től sem. [ ] X meghívhatja egy Q interfészű objektum foo( ) metódusát, mert X implementálja Q-t. [ ] X bar() metódusából meghívhatjuk egy Q interfészű objektum foo( ) metódusát, mert X foo(q:q) metódusából is hívhatjuk egy Q interfészű objektum foo( ) metódusát. [ ] S set( ) metódusa nem módosíthatja a value attribútumot, mert a láthatóságuk különböző. BME-IIT 18
19 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» W + garply( u:u ) : void «interface» U + corge() : void A + x : int + waldo() : W B - z : string + fred() : void + thud( w:w ) : void C - y : double + plugh() : C c 0..* D + xyzzy( a:a ) : C + corge() : void A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] U interfésze részhalmaza D interfészének, ezért D megvalósítja az U interfészt. [ ] D xyzzy függvénye visszaadhatja eredményként a paraméterként kapott a objektumot, mert C az A leszármazottja. [ ] A waldo függvénye nem példányosíthat B típusú objektumot, mert B nem implementálja a W interfészt. [ ] C plugh függvénye nem módosíthatja A x attribútumát, mert A x attribútuma protected. [ ] Egy C objektum sok D objektumot tartalmaz, ezért C ismeri D-t. [ ] B fred függvénye nem módosíthatja a z attribútum értékét, mert B z attribútuma nem protected. [ ] B thud függvénye meghívhatja egy paraméterül kapott C típusú objektum plugh függvényét, mert C plugh függvénye virtuális. [ ] C nem függ U-tól, mert C A ősosztálya sem függ U-tól. BME-IIT 19
20 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» X + foo() : Z + bar() : void «interface» Z + bar() : void A - w : int + baz( c:c ) : void + foo() : Z B # u : A + baz( c:c ) : void -qux C + corge( x:x ) : void + waldo() : Z D - v : double + garply( b:b ) : void + hello() : Z A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] D garply metódusa nem módosíthatja a b paraméter u attribútumát, mert protected attribútumhoz csak privát és protected metódusok férhetnek hozzá. [ ] C corge metódusa kaphat paraméterül D típusú objektumot, ezért a metódus meghívhatja a kapott objektum garply metódusát. [ ] D garply metódusa kaphat paraméterül A típusú objektumot, mert A és B interfésze megegyezik. [ ] C waldo metódusa virtuális, ezért a B osztály baz függvénye egy paraméterül kapott D típusú objektumon meghívhatja a waldo metódust. [ ] A baz metódusa nem módosíthatja A w attribútumát, mert A baz metódusa nem statikus. [ ] C-nek van bar metódusa, ezért C implementálja a Z interfészt. [ ] D hello metódusa nem módosíthatja D v attribútumát, mert D v attribútuma privát. [ ] B baz metódusa nem hívhatja meg B u attribútumának foo metódusát, mert az A osztály foo metódusa absztrakt. BME-IIT 20
21 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» L M 1 + waldo( m:m ) : void + foo( m:m ) : void P name # a : M + bar( m:m ) : void 1 q Q + baz() : L R - s : S + grault() : void + garply() : void S - r : R - qux( p:p ) : P + corge() : S A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] R garply metódusa meghívhatja az s attribútum corge metódusát, mert a garply és a corge metódus is statikus. [ ] P nem hívhat Q osztályon waldo függvényt, mert L waldo függvénye nem virtuális. [ ] Q függ M-től, mert Q ismeri P-t. [ ] Az M típus közvetlenül nem példányosítható, ezért R grault metódusa nem hívhatja meg P a attribútumának foo metódusát. [ ] Egy P típusú objektum pontosan egy Q típusú objektumot ismer, ezért P függ Q-tól. [ ] S az L leszármazottja, ezért Q baz függvénye példányosíthat S típusú objektumot. [ ] S qux függvénye nem módosíthatja az r attribútum s attribútumát, mert R s attribútuma privát. [ ] S ismeri M-et, mert az S osztály L őse függ M-től. BME-IIT 21
22 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! «interface» A + foo():b B + foo():b C - x : int + baz( b:b ) # baz( d:d ) - garply() 1 c D + y : double + qux( a:a ) E # z : C name grault( e:e ) 1 F + bar( d:d ) + corge() A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] D implementálja az A interfészt, mert A és B interfésze megegyezik. [ ] F corge() metódusa nem módosíthatja D y attribútumát, mert D y attribútuma statikus. [ ] E grault(e:e) metódusa nem hívhatja meg e z attribútumának baz(b:b) metódusát, mert a grault() statikus. [ ] Egy F objektum pontosan egy E objektumot ismer, mert egy E objektum pontosan egy F objektumot ismer. [ ] C foo() metódusa példányosíthat B típusú objektumot, ezért C függ B-től. [ ] F bar(d:d) metódusából nem hívható meg c baz(b:b) metódusa, mert C baz(b:b) metódusa nem kaphat paraméterül D típusú objektumot. [ ] C baz(d:d) metódusa nem hívhatja meg C garply() metódusát, mert C baz (d:d) metódusa nem statikus. [ ] D qux(a:a) metódusa nem hívhatja meg egy paraméterül kapott C típusú objektum baz(b:b) metódusát, mert A nem helyettesíthető C-vel. BME-IIT 22
23 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Z +foo( ) +bar( ) S Q -inf +bar(q:q) -im +bar(x:x) R B -q -qux(b:b) -val +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] R helyettesíthető B-vel, mert R függ B-től [ ] Q meghívhatja S bar(q:q) metódusát, mert mindketten megvalósítják az X interfészt. [ ] Q helyettesíthető S-sel, mert S a Q leszármazottja [ ] B interfésze tartalmazza a bar(x:x) metódust, mert a metódus statikus. [ ] B foo(q:q) metódusa nem látja saját val attribútumának értékét, mert az attribútum privát. [ ] Q bar( ) metódusa nem módosíthatja az im attribútumot, ezért az attribútum statikus.. [ ] Q nem implementálja a foo( ) metódust, ezért nem függ az X interfésztől. [ ] B átadható paraméterül Q bar(x:x) metódusának, mert Q és S interfésze megegyezik. BME-IIT 23
24 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Z +foo( ) +bar( ) S Q -inf +bar(q:q) -im +bar(x:x) R B -q -qux(b:b) -val +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Q helyettesíthető S-sel, mert S a Q leszármazottja [ ] S helyettesíthető B-vel, mert B megvalósítja az X interfészt [ ] R átadható paraméterül Q bar(x:x) metódusának, mert Q és S interfésze megegyezik. [ ] B foo(q:q) metódusa nem látja saját val attribútumának értékét, mert az attribútum privát. [ ] B interfésze tartalmazza a bar(x:x) metódust, mert a metódus statikus [ ] Q meghívhatja S bar(q:q) metódusát, mert mindketten megvalósítják az X interfészt. [ ] Q bar( ) metódusa nem módosíthatja az im attribútumot, ezért az attribútum konstans. [ ] Q nem implementálja a foo( ) metódust, ezért nem függ az X interfésztől. BME-IIT 24
25 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Q W +foo( ) +bar( ) E R -inf +bar(q:q) -im +bar(e:e) T Y -q -qux(y:y) -val +foo(r:r) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Y bar(q:q) metódusa kaphat paraméterül R objektumot, mert Y függ R-től. [ ] T qux(y:y) metódusa módosíthatja a paraméter val attribútumát, mert a metódus privát. [ ] E bárhol helyettesíthető R-rel, mert azonos az interfészük. [ ] Y foo(r:r) metódusa nem módosíthatja a paraméter im attribútumát, mert az attribútum statikus. [ ] E bar(q:q) metódusa kaphat E objektumot paraméterül, mert az E megvalósítja a Q interfészt. [ ] E bar(q:q) metódusa nem hívhatja meg egy paraméterül kapott W foo() metódusát, mert W-nek nincs ilyen szignatúrájú metódusa. [ ] R bar(e:e) metódusa nem kaphat paraméterül Y objektumot, mert az Y-R asszociációban csak Y hívhatja R-t. [ ] R nem valósítja meg a Q interfészt, mert van olyan szignatúrájú metódusa, ami nem szerepel a Q metódusai között. BME-IIT 25
26 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> R +alfa( ) : T S +iota : int +kappa( ) 2..5 <<interface>> L +gamma( ) +delta( ) T M C +eps(m:l) +eta : int D +theta(s:s) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] M alfa():t metódusa visszaadhat C objektumot, mert C függ M-től. [ ] D theta(s:s) metódusa nem kaphat paraméterül C objektumot, mert S és C is megvalósítja az R interfészt. [ ] C eps(m:l) metódusa nem hívhatja meg a paraméter gamma() metódusát, mert az utóbbi metódus protected láthatóságú. [ ] D theta(s:s) metódusa nem módosíthatja a paraméter iota attribútumát, mert a theta(s:s) statikus. [ ] S nem valósítja meg az alfa():t szignatúrájú metódust, mert S nem függ T-től. [ ] D theta(s:s) metódusa legfeljebb 5-ször hívható meg, mert D objektum legfeljebb 5 S-sel állhat asszociációban. [ ] M bárhol helyettesíthető C-vel, mert mindketten megvalósítják az R interfészt. [ ] T osztálynak van alfa():t szignatúrájú metódusa, mert T megvalósítja az R interfészt. BME-IIT 26
27 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> R +alfa( ) : T S +iota : int +kappa( ) 2..5 <<interface>> L +gamma( ) +delta( ) T M C +eps(m:l) +eta : int D +theta(s:s) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] M bárhol helyettesíthető C-vel, mert mindketten megvalósítják az R interfészt. [ ] C eps(m:l) metódusa nem hívhatja meg a paraméter gamma() metódusát, mert az utóbbi metódus protected láthatóságú. [ ] D theta(s:s) metódusa módosíthatja a paraméter iota attribútumát, mert a theta(s:s) statikus. [ ] T osztálynak nincs alfa():t szignatúrájú metódusa, mert T nem valósítja meg az R interfészt. [ ] M alfa():t metódusa visszaadhat C objektumot, mert C függ M-től. [ ] D theta(s:s) metódusa kaphat paraméterül C objektumot, mert S és C is megvalósítja az R interfészt. [ ] S nem valósítja meg az alfa():t szignatúrájú metódust, mert S nem függ T-től. [ ] D theta(s:s) metódusa legfeljebb 5-ször hívható meg, mert D objektum legfeljebb 5 S-sel állhat asszociációban. BME-IIT 27
28 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> D +foo( ) F +set(k:k) <<interface>> R +bar( ) L fill(f:f) X +run(r:r) E +run(d:d) K +foo(f:f) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] E bárhol helyettesíthető K-val, mert van közös ősük. [ ] L bárhol helyettesíthető F-fel, mert mindketten megvalósítják a D interfészt. [ ] L nem helyettesíthető E-vel, mert L-nek van privát metódusa. [ ] F set(k:k) metódusa meghívhatja egy paraméterül kapott K fill(f:f) metódusát, mert K függ F-től. [ ] X run(r:r) metódusa kaphat paraméterül F osztályú objektumot, mert X függ R-től. [ ] K-nak nincs foo() szignatúrájú metódusa, mert K-t nem lehet példányosítani. [ ] X run(r:r) metódusa nem kaphat paraméterül K objektumot, mert K-nak van statikus metódusa. [ ] K foo(f:f) metódusa nem hívhatja meg a paraméter foo( ) metódusát, mert az utóbbi metódus nem statikus. BME-IIT 28
29 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> D +foo( ) F +set(k:k) <<interface>> R +bar( ) L fill(f:f) X +run(r:r) E +run(d:d) K +foo(f:f) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] X run(r:r) metódusa kaphat paraméterül F osztályú objektumot, mert X függ R-től. [ ] K-nak nincs foo() szignatúrájú metódusa, mert K-t nem lehet példányosítani. [ ] L bárhol helyettesíthető F-fel, mert mindketten megvalósítják az R interfészt. [ ] L nem helyettesíthető E-vel, mert L-nek van privát metódusa. [ ] X run(r:r) metódusa nem kaphat paraméterül K objektumot, mert K-nak van statikus metódusa. [ ] K foo(f:f) metódusa nem hívhatja meg a paraméter foo( ) metódusát, mert az utóbbi metódus nem statikus. [ ] E bárhol helyettesíthető K-val, mert van közös ősük. [ ] F set(k:k) metódusa nem hívhatja meg egy paraméterül kapott K fill(f:f) metódusát, mert K függ F-től. BME-IIT 29
30 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Q +foo( ) W +broaf( ) -qux(r:r) <<interface>> G +bar( ) L nesze(w:w) +test( ) C +hoci(g:g) -sum M +hoci(q:q) R +set(m:m) +irgum() A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] M hoci(q:q) függvénye meghívhatja egy paraméterül kapott W broaf() metódusát, mert a broáf metódus statikus. [ ] R set(m:m) metódusa kaphat paraméterül L objektumot, mert M az L leszármazottja. [ ] L nesze(w:w) metódusa meghívhatja a paraméterül kapott objektum qux(r:r) metódusát, mert mindkét metódus privát. [ ] W bárhol helyettesíthető L-lel, mert mindketten megvalósítják a Q interfészt. [ ] R-nek nincs foo() szignatúrájú metódusa, mert nem valósítja meg a G interfészt. [ ] C hoci(g:g) metódusa kaphat paraméterül M objektumot, mert M hoci(q:q) metódusa is kaphat paraméterül C-t. [ ] L nesze(w:w) metódusa nem hívhatja meg a test() metódust, mert a test() statikus. [ ] W qux(r:r) metódusából bármikor meghívható a paraméter irgum() metódusa, mert a két osztály nem függ egymástól. BME-IIT 30
31 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> D F +foo( ) +bar( ) G H -inf +bar(d:d) -im +bar(g:g) B V #q -qux(v:v) +set(v:v) -val +foo(h:h) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] G bar(d:d) metódusa kaphat paraméterül B objektumot, mert G a B leszármazottja [ ] H bar(g:g) metódusa kaphat paraméterül V objektumot, mert V megvalósítja a D interfészt. [ ] B qux(v:v) metódusa módosíthatja a paraméter val attribútumát, mert mind a metódus, mind az attribútum privát. [ ] H bar(g:g) metódusa nem módosíthatja az im attribútumot, mert az attribútum konstans. [ ] B objektum nem hívhatja meg egy V objektum foo() metódusát, mert V-nek nincs ilyen szignatúrájú metódusa. [ ] G bar(d:d) metódusa meghívhatja egy paraméterül kapott F objektum bar() metódusát, mert a két metódus azonos szignatúrájú [ ] B set(v:v) metódusa nem módosíthatja a q attribútmot, mert a láthatóságuk különböző. [ ] B-nek van foo() szignatúrájú metódusa, mert B megvalósítja a D interfészt BME-IIT 31
32 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> W F 3 +juj( ) +nane( ) +mi( ) <<interface>> Q U +juj(w:w) N S +juj(q:q) -foo : int +xxx( ) K A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] K helyettesíthető S-sel, mert közös ősük U. [ ] K juj(w:w) metódusa kaphat paraméterül S-t, mert K az F leszármazottja. [ ] K xxx() metódusa módosíthatja bármely K objektum foo attribútumát, mert a metódus statikus. [ ] F nem implementálja a juj() metódust, mert nem U leszármazottja. [ ] S juj(q:q) metódusában meghívható egy paraméterül kapott N objektum mi() metódusa, mert N megvalósítja a W interfészt. [ ] S-nek nincs juj(w:w) metódusa, mert a juj(q:q) metódusnak ugyanaz a szignatúrája. [ ] F helyettesíthető U-val, mert K mindkettejük leszármazottja. [ ] U juj(w:w) metódusából meghívhatjuk egy paraméterül kapott F nane() metódusát, mert F megvalósítja a Q interfészt. BME-IIT 32
33 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface> Q +foo( ) S +value +do(v:v) +get( ) -set( ) T 2 <<interface> V U R +bar( ) X +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] S létrehozhat V osztályú objektumot, mert V függ az S-től. [ ] X foo(q:q) metódusa kaphat paraméterül T-t, mert T megvalósítja a Q interfészt. [ ] X foo(q:q) metódusa meghívhatja a paraméterül kapott S get() metódusát, mert S megvalósítja a Q interfészt. [ ] T-ből legalább kétszer annyi példány van, mint U-ból, mert egy T példány nem tartozhat két U-hoz. [ ] T meghívhatja U bar() metódusát, mert U-nak van bar () metódusa. [ ] X meghívhatja egy Q interfészű objektum foo( ) metódusát, mert X implementálja Q-t [ ] V helyettesíthető U-val, mert mindketten megvalósítják az R interfészt [ ] S set( ) metódusa nem módosíthatja a value attribútumot, mert a láthatóságuk különböző BME-IIT 33
34 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> Q H +foo( ) +bar( ) K W -inf +bar(q:q) -im +bar(k:k) F R #q -qux(q:q) +bar(r:r) -val +foo(k:k) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] H bármikor helyettesíthető R-rel, mert R a H leszármazottja. [ ] W nem módosíthatja K inf attribútumát, mert az attribútum protected. [ ] F bar(r:r) metódusa nem hívhatja meg a qux(q:q) metódust, mert az utóbbi statikus. [ ] F qux(q:q) meghívhatja a bar(r:r) metódust a q paraméterrel, mert az R megvalósítja a Q interfészt. [ ] Az ábrán szereplő összes egy-paraméteres bar metódus kaphat R objektumot paraméterül, mert R megvalósítja az összes említett metódust. [ ] W bar(k:k) metódusa nem módosíthatja az osztály im attribútumát, mert az attribútum konstans. [ ] W rendelkezik foo( ) szignatúrájú metódussal, mert függ K-tól. [ ] Egy F objektum meghívhatja saját magával mint paraméterrel egy R foo(k:k) metódusát, mert F a K leszármazottja. BME-IIT 34
35 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Z +foo( ) +bar( ) +set(x:x) S Q -inf +bar(q:q) -im +bar(x:x) R B -q -qux(q:q) -val +foo(r:r) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Q bárhol helyettesíthető S-sel, mert S a Q leszármazottja. [ ] R qux(q:q) metódusa nem kaphat paraméterül Z objektumot, mert a metódus absztrakt [ ] B foo(r:r) metódusa nem hívhat meg a paraméterül kapott objektumon foo() metódust, mert R-nek nincs ilyen metódusa [ ] S bar(q:q) metódusa nem módosíthatja az S inf attribútumát, mert az attribútum konstans. [ ] S bar(q:q) metódusa nem hívhatja meg a paraméterül kapott objektum bar() metódusát, mert a Q osztálynak nincs ilyen szignatúrájú metódusa. [ ] Z set(x:x) metódusa nem kaphat paraméterül B objektumot, mert B megvalósítja az X interfészt. [ ] B módosíthatja egy Q objektum im attribútumát, mert S függ Q-tól. [ ] R és B bárhol felcserélhetők, mert közös az ősük. BME-IIT 35
36 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Z +foo( ) +bar( ) S Q -inf +bar(x:x) -im +bar(s:s) R B #q -qux(b:b) +bar(x:x) -val +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] R helyettesíthető B-vel, mert mindketten megvalósítják az X interfészt. [ ] Z helyettesíthető B-vel, mert B a Z leszármazottja. [ ] Q bar(s:s) metódusa nem módosíthatja Q im attribútumát, mert az attribútum statikus. [ ] R qux(b:b) metódusa nem hívhat meg a paraméteren foo( ) metódust, mert B nem implementálja az X interfészt. [ ] S bar(x:x) metódusa meghívhatja egy paraméterül kapott Z bar( ) metódusát, mert Z megvalósítja az X interfészt. [ ] R qux(b:b) metódusa nem módosíthatja a q attribútumot, mert az attribútum privát. [ ] B bar(s:s) metódusa nem kaphat paraméterül R objektumot, mert B nem ismeri az R osztályt. [ ] S bar(x:x) metódusa kaphat paraméterül R objektumot, mert R függ X-től. BME-IIT 36
37 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Z +foo( ) +bar(s:s) S Q -inf +bar(x:x) #im +bar(q:q) R B -q -qux(b:b) -val +foo(x:x) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] R helyettesíthető S-sel, mert S az R leszármazottja [ ] R helyettesíthető B-vel, mert mindketten megvalósítják az X interfészt [ ] R átadható paraméterül Q bar(s:s) metódusának, mert Q és S interfésze megegyezik. [ ] B foo(x:x) metódusa nem látja a val attribútum értékét, mert az attribútum nem statikus. [ ] Q meghívhatja S bar(x:x) metódusát, mert mindketten megvalósítják az X interfészt. [ ] B interfésze tartalmaz qux(b:b) metódust, mert B-nek van R-rel közös őse. [ ] Q bar(s:s) metódusa nem módosíthatja az im attribútumot, mert az attribútum privát. [ ] B meghívhatja R qux(b:b) metódusát, mert a metódus paramétere B osztályú. BME-IIT 37
38 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Z +foo( ) +bar( ) S Q -inf +bar(x:x) -im +bar(s:s) R B -q -qux(b:b) -val +foo(q:q) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] S helyettesíthető Q-val, mert Q az S leszármazottja [ ] S helyettesíthető B-vel, mert B megvalósítja az X interfészt [ ] R átadható paraméterül Q bar(s:s) metódusának, mert Q és S interfésze megegyezik. [ ] B foo(q:q) metódusa nem látja saját val attribútumának értékét, mert az attribútum privát. [ ] Q meghívhatja S bar(x:x) metódusát, mert mindketten megvalósítják az X interfészt. [ ] B interfésze tartalmazza bar(s:s) metódust, mert a metódus statikus. [ ] Q bar() metódusa nem módosíthatja az im attribútumot, ezért az attribútum konstans. [ ] B nek nincs bar(x:x) metódusa, ezért nem függ az X interfésztől. BME-IIT 38
39 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X Y 3 +bar( ) +foo( ) <<interface>> Z +init( ) W +sort(x:x) Q M N +bar(z:z) +xxx( ) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Y helyettesíthető W-vel, mert mindketten megvalósítják az X interfészt. [ ] N meghívhatja Y foo( ) metódusát, mert N megvalósítja a Z interfészt. [ ] M bar(z:z) metódusa kaphat paraméterül N objektumot, mert van közös ősük. [ ] W nem helyettesíthető M-mel, mert W-nek nincs bar(z:z) szignatúrájú metódusa. [ ] Q helyettesíthető M-mel, mert mindkettő megvalósítja a Z interfészt. [ ] N xxx( ) metódusa meghívható a W osztály sort(x:x) metódusából, mert az N.xxx( ) statikus. [ ] W sort(x:x) metódusa meghívhatja egy paraméterül kapott Y objektum bar( ) metódusát, mert W-nek is van ugyanilyen szignatúrájú metódusa. [ ] M-nek és N-nek különböző az interfésze, mert N nem valósítja meg X-t. BME-IIT 39
40 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X <<interface>> Y M +fff( ) +ppp( ) +ppp( ) +do( ) <<interface>> Z U -do( ) +foo(z:z) -g L H K +foo(z:z) +bar(l:l) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] H bárhol helyettesítheti U-t, mert mindketten megvalósítják az X interfészt. [ ] H foo(z:z) metódusa meghívható egy U-val, mert U megvalósítja az Y interfészt. [ ] U nem hívhatja meg K bar(l:l) metódusát, mert K nem függ L-től. [ ] K implementálja a Z interfészt, ezért K meghívhatja U do( ) metódusát. [ ] K nem hozhat létre L objektumot, mert az L g attribútuma privát. [ ] U foo(z:z) metódusa nem hívhatja meg egy paraméterül kapott H foo(z:z) metódusát, mert U nem implementálja a Z interfészt. [ ] K bárhol helyettesítető U-val, mert K az U leszármazottja. [ ] L nem ismeri az Y interfészt, ezért L nem hívhatja meg M ppp( ) metódusát. BME-IIT 40
41 Az alábbi UML2 diagram alapján - a kulcs felhasználásával - jellemezze az állításokat! <<interface>> X +foo( ) R +set(s:s) <<interface>> Y +bar( ) S fill(s:s) W +set(y:y) T +set(x:x) U +set(s:s) A - csak az első tagmondat igaz (+ -) B - csak a második tagmondat igaz (- +) C - mindkét tagmondat igaz, de a következtetés hamis (+ + -) D - mindkét tagmondat igaz és a következtetés is helyes (+ + +) E - egyik tagmondat sem igaz (- -) [ ] Y bárhol helyettesíthető W-vel, mert W az Y leszármazottja. [ ] U bármikor lehet T.set(x:X) paramétere, mert U megvalósítja az X interfészt. [ ] R meghívhatja saját set(s:s) metódusából egy W set(y:y) metódusát, mert S megvalósítja Y-t. [ ] S fill(s:s) metódusa nem kaphat paraméterül T-t, mert a metódus protected. [ ] T megvalósítja az X interfészt, mert T az R leszármazottja. [ ] T pontosan egy U-t tartalmazhat, mert csak egy közvetlen ősük van. [ ] T bárhol helyettesíthető U-val, mert egyforma az interfészük. [ ] U meghívhatja S fill(s:s) metódusát, mert R asszociációban van S-sel. BME-IIT 41
42 Készítsen UML 2 osztálydiagramot (class diagram) az alábbi leírás alapján! Használja a kövéren szedett kifejezéseket! Ahol lehet, adja meg a paraméterek, attribútumok, stb típusát is! Az OOniX operációs rendszerben folyamatok, fájlok és hálózati kapcsolatok (socket) vannak. A folyamatoknak van azonosítója (pid), tulajdonosa (uid). Egy folyamatból a fork() metódussal lehet újat létrehozni. Minden folyamat ismeri a közvetlen ősét és a gyerekeit. A fájloknak van egy senki más által nem látható inode száma, és lekérdezhető a méretük. A fájlok többfélék lehetnek: könyvtárak, amelyek más fájlokat tartalmazhatnak (a nevük alapján), reguláris fájlok, amiknek van típusa, stb. Minden fájl egy könyvtár része. A folyamatok egyformán kezelhetnek socketet és fájlt is, de csak egy közös interfészt (stream) látnak belőlük, amiken bájtokat lehet olvasni és írni. Az ilyen objektumokról a folyamatnak van egy listája, aminek az elemeit fájlleíróval (fd) azonosítja. A folyamatok létrehozásakor egy (a folyamatok számára közös) számláló (lastpid) növekszik, ez lesz az újonnan létrehozott folyamat azonosítója. A folyamatoknak más folyamatok tudnak üzenni a signal() üzenet meghívásával (egy darab egész típusú paramétere van). A lastpid és a signal csak folyamatból (és esetleges leszármazottjából) látható. BME-IIT 42
43 Rajzoljon UML 2 osztálydiagramot az alábbi leírás alapján! A hogyishíjják legalább két, legfeljebb öt francból áll. A francok létrehozása és megsemmisítése a hogyishíjják feladata. A hogyishíjják mindig egy nagyobb rendszer, az izé része. Az izének legalább egy hogyishijjákja kell legyen. Előfordul azonban, hogy egy hogyishíjják két izéhez is tartozik egyszerre. A hogyishíjják a kummantó interfészt várja el. Ilyen interfészt biztosít a micsoda és két leszármazottja, a bigyó és a miaszösz. A bigyónak két protected metódusa van: x és y. A miaszösz egy darab publikus és statikus attribútummal rendelkezik (foo). Az izék és a micsodák ismerik egymást, több-több kapcsolatban állnak. Nyilván tudjuk tartani, hogy egy izé egy adott micsodával mióta áll kapcsolatban. Végül az izé ismer egy csomó bármit, amiket egyedi azonosítóval (id) különböztet meg egymástól. BME-IIT 43
és az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Interfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
Java programozási nyelv 5. rész Osztályok III.
Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért
Programozási technológia
Programozási technológia UML emlékeztető, Öröklődés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. UML Osztályok jelölése A diagramokban az osztály jelölésénél a nevét, az attribútumok nevét és a műveletek
Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
ELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 Oktatóanyag 2 Az oktatás folyamán használt példák a fent látható egyszerű modell implementációi. Oktatóanyag 3 A definíciós részben definiálja a fejlesztő az egyes attribútumokat, metódusokat,
OOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
JAVA PROGRAMOZÁS 2.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,
Programozás módszertan p.1/46
Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS
VIZSGA FELADATSOR SZOFTVERTECHNOLÓGIA c. tárgyból 2010. december 21.
VIZSGA FELADATSOR SZOFTVERTECHNOLÓGIA c. tárgyból 2010. december 21. Az első lapon található feladatok megoldására 30 perc áll rendelkezésére. Az elérhető 24 pontból minimum 14 pontot kell kapnia ahhoz,
UML Feladatok. UML Feladatok
UML Feladatok 2008.01.08 4. Feladat Az alábbi ábrán három UML2 modell elemet megjelöltünk. Adja meg elemenként, hogy az melyik UML2 meta-modell elem példánya! 2008.01.15 4. Feladat Jelölje meg, hogy a
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus
Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma
Programozási alapismeretek 4.
Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)
OOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
Osztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
Bevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
Öröklés és Polimorfizmus
Öröklés és Polimorfizmus Egy létező osztályból egy (vagy több) újat készítünk A létező osztályt ősnek, az újakat utódnak nevezzük Az utódok öröklik az ős minden tagját Az utódok az öröklött tagokat újakkal
Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java
Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:
Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
Interfészek. Programozás II. előadás. Szénási Sándor.
Interfészek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Polimorfizmus áttekintése Interfészek Interfészek alkalmazása
BME MOGI Gépészeti informatika 8.
BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező
Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:
Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1
STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat
Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus
Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 6. előadás Objektumorientált programozás: öröklődés és polimorfizmus 2011.10.24. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;
PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function
Bevezetés a programozásba előadás: Öröklődés
Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás
III. OOP (objektumok, osztályok)
III. OOP (objektumok, osztályok) 1. Természetes emberi gondolkozás Az Objektumorientált paradigma alapelvei nagyon hasonlítanak az emberi gondolkozásra. Érdemes ezért elsőként az emberi gondolkozás elveit
Java programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar. 2010. január 4.
Név, felvételi azonosító, Neptun-kód: MI pont(90) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnök informatikus szak BME Villamosmérnöki
Metamodellezés. Simon Balázs BME IIT, 2011.
Metamodellezés Simon Balázs BME IIT, 2011. Bevezetés Metamodellezés EMF & ecore Tartalom (C) Simon Balázs, BME IIT, 2011. 2 Hétfő: Simon Balázs Bevezetés hetente felváltva: előadás és gyakorlat metamodellezés
Globális operátor overloading
Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal
CIM Core Model. Paller Gábor 2004.10.07. Internet és mobil rendszerek menedzselése
CIM Core Model Paller Gábor 2004.10.07 Common Information Model CIM Általános formátum rendszerek leírására, mindenekelőtt (de nem kizárólag) menedzsment célból. A specifikáció magja a rendszerleírási
ELTE SAP EXCELLENCE CENTER Oktatóanyag. Sas László: ABAP Objects Objektumorientált ABAP
ABAP Objects Az oktatás célja az alapvető nyelvi elemek megismertetése. Az objektum-orientált programozás elméletének ismerete előfeltétel, éppen ezért ez nem kerül bemutatásra. Az oktatás folyamán használt
Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
Virtuális függvények (late binding)
Virtuális függvények (late binding) Miskolci Egyetem Általános Informatikai Tanszék Virtuális függvények CPP5 / 1 Azonos nevű függvények megkülönböztetése paraméterszignatúra (függvény overloading) - egy
2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.
Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat
Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.
KIINDULÁS Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
Bevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.
Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető
JAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
Objektum Orientált Szoftverfejlesztés (jegyzet)
Objektum Orientált Szoftverfejlesztés (jegyzet) 1. Kialakulás Kísérletek a szoftverkrízisből való kilábalásra: 1.1 Strukturált programozás Ötlet (E. W. Dijkstra): 1. Elkészítendő programot elgondolhatjuk
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék
Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma
Programozás alapjai II. (5. ea) C++
Programozás alapjai II. (5. ea) C++ analitikus és korlátozó öröklés Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.8. -1 - OO modellezés
Programozás alapjai II. (5. ea) C++
Programozás alapjai II. (5. ea) C++ analitikus és korlátozó öröklés Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.8. -1 - OO modellezés
OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
Objektumelvű programozás
Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé
Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.
Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
C programozás. 6 óra Függvények, függvényszerű makrók, globális és
C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
Bevezetés a Programozásba II 8. előadás. Polimorfizmus Giachetta Roberto
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 8. előadás 2014.03.31. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Öröklődés
1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon
1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (
Elemi Alkalmazások Fejlesztése II.
Elemi Alkalmazások Fejlesztése II. Osztályok közötti kapcsolatok öröklődés asszociáció aggregáció kompozíció 1. Feladat Készítsünk programot, amellyel testek térfogatát határozhatjuk meg, illetve megadhatjuk
Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása
Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
Segédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java
OOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
Előzmények 2011.10.23.
Előzmények Dr. Mileff Péter A 80-as évek közepétől a szoftverek komplexitása egyre növekszik. Megjelentek az OO nyelvek. Az OO fejlesztési módszerek a rendszer különböző nézőpontú modelljeit készítik el.
Osztály öröklődés. Öröklődés és polimorfizmus. Programozás II. előadás. http://nik.uni-obuda.hu/prog2 Szénási Sándor. szenasi.sandor@nik.uni-obuda.
Osztály öröklődés Öröklődés és polimorfizmus előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Öröklődés Polimorfizmus Osztályok
Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar. 2015. január 5.
Név, felvételi azonosító, Neptun-kód: MI pont(45) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnökinformatikus szak BME Villamosmérnöki
Generikus Típusok, Kollekciók
Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:
Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus
Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 5. előadás Objektumorientált programozás és tervezés 2014.03.10. Giachetta Roberto groberto@inf.elte.hu
Vizuális és eseményvezérelt programozás , II. félév BMF NIK
Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Eseménykezelés A képviselő( delegate ) Képviselők C# nyelvi megvalósítása Metódushívás képviselőn keresztül Az esemény ( event ) Esemény
Programozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 12. fejezet Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2016. évi jegyzetpályázatának
Programozási nyelvek II. JAVA
Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10. Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek
C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag
C# osztálydeníció Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem.net C# technológiák tananyag objektum orientált programozás tananyag Tartalom 1 Bevezetés 2 Osztály létrehozása, deníció
Programozási nyelvek II.: JAVA, 11. gyakorlat
Programozási nyelvek II.: JAVA, 11. gyakorlat 2017. november 27-december 1. Programozási nyelvek II.: JAVA, 11. gyakorlat 1 / 54 A 11. gyakorlat tematikája Örökl dés Osztályhierarchia Az Object osztály
ú Í ú ő ú ú Ö ő ü ü í ö í ő ő í ő ő ő ő ő ő í í ő ü ü úö ö ő í ö í ő í ő ő ö ő ő ö ő í ö ő ő ü ö ú ö í í ő ö í ź í ő ő í ő ő í í í Í Í ü ő ő ő ú í í ü ę ö Í Í ü ź í ü ö ö ę ö Í ťö ö í í ö í ő ő í ő ő í
Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
Utolsó módosítás:
Utolsó módosítás: 2016. 02. 16. 1 Bonyolult rendszerekkel csak úgy tudunk dolgozni, hogy először egyszerűbb modelleket építünk, és ezeknek a segítségével megvizsgáljuk a rendszert különböző szempontokból.
128. AA Megoldó Alfréd AA 128.
Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: Hiány:0 ZH: MEGOLD SEHOL/5. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden
Objektum orientált kiterjesztés A+ programozási nyelvhez
Szegedi Tudományegyetem Informatikai Tanszékcsoport Objektum orientált kiterjesztés A+ programozási nyelvhez Diplomamunka terve Készítette: Bátori Csaba programtervező matematikus hallgató Témavezető:
SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna
SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA Dr. Iszály György Barna KOMPONENSEK KÖZÖTTI KOMMUNIKÁCIÓ Minden Androidos alkalmazás a saját Dalvik virtuális gépén fut Így az alkalmazások elkülönülnek egymástól,
OOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
Objektumorientált programozás IX. Osztályok, objektumok
Objektumorientált programozás IX. Osztályok, objektumok 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Programozás II. ATM példa Dr. Iványi Péter
Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
Felvételi vizsga Mesterképzés, mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar június 8.
Név, azonosító: MI pont(90) : Felvételi vizsga Mesterképzés, mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar 2009. június 8. A dolgozat minden lapjára, a kerettel jelölt részre írja fel
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus 5-ös Kurzus (UML) Visszatekintés: történelmi szempontok Az UML létrejötte UML-1 (Unified Modeling Language) és UML-2 Magyarul
Programozás II. labor
Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés