„Objektumorientált szoftvertervezés - Vizsga, 2009.05.28.” változatai közötti eltérés

A VIK Wikiből
Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotVizsga20090528}} ===OO Vizsga 2009-05-28=== __TOC__ ====01. Meg volt adva egy A osztály, melynek volt 1 private, 1 public, 1 static és…”
 
Nagy Marcell (vitalap | szerkesztései)
autoedit v2: fájlhivatkozások egységesítése, az új közvetlenül az adott fájlra mutat
 
(5 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{GlobalTemplate|Infoszak|OotVizsga20090528}}
===OO Vizsga 2009-05-28===
===OO Vizsga 2009-05-28===


__TOC__
__TOC__


====01. Meg volt adva egy A osztály, melynek volt 1 private, 1 public, 1 static és 1 transient tagváltozója. Mellette egy kódrészlet, ahol egy A objektum létre van hozva, bevannak állítgatva a változói, majd le van szerializálva. Ezután még egy létre van hozva, bellítgatva és szerializálva. Végül a streamből be van olvasva egy A, és a kérdés, hogy mik lesznek a változóinak az értékei. (4 pont)====
====Meg volt adva egy A osztály, melynek volt 1 private, 1 public, 1 static és 1 transient tagváltozója. Mellette egy kódrészlet, ahol egy A objektum létre van hozva, bevannak állítgatva a változói, majd le van szerializálva. Ezután még egy létre van hozva, bellítgatva és szerializálva. Végül a streamből be van olvasva egy A, és a kérdés, hogy mik lesznek a változóinak az értékei. (4 pont)====


* A private és a public arra áll vissza ami az első serializalt példánynál volt, a tranzient az null lesz, a static meg annak az érteket veszi fel amit masodik peldanynal allitottunk be. (ez utóbbi nem a szerializálás miatt ugyebár, de akkor is az lesz, mert osztályszintű a static, és A az A a beolvasásnál is, tehát valójában nem deserializálva lett hanem inicializálva) [[PZs]]
* A private és a public arra áll vissza ami az első serializalt példánynál volt, a tranzient az null lesz, a static meg annak az érteket veszi fel amit masodik peldanynal allitottunk be. (ez utóbbi nem a szerializálás miatt ugyebár, de akkor is az lesz, mert osztályszintű a static, és A az A a beolvasásnál is, tehát valójában nem deserializálva lett hanem inicializálva) [[PZs]]


====02. Booleant szeretnénk betenni OO adatbázisba. createRoot("bool",XXX). XXX helyére mit írhatunk====
====Booleant szeretnénk betenni OO adatbázisba. createRoot("bool",XXX). XXX helyére mit írhatunk====


* '''boolean értéket'''
* '''boolean értéket'''
20. sor: 18. sor:
   * Mehet sima boolean, mert az autoboxing miatt Boolean lesz belőle. Feltéve, hogy nem a fos 1.3-as verziót kérik vissza... [[CsL]]
   * Mehet sima boolean, mert az autoboxing miatt Boolean lesz belőle. Feltéve, hogy nem a fos 1.3-as verziót kérik vissza... [[CsL]]


====03. Meg volt adva egy Line osztály és 4 fv: create(m,b),getM(),getB(),y(x). Az y metódus a paraméterként kapott x koordinátához tartozó y koordinátát számolja ki az egyenes egyenletéből. Mennyi a LCOM? Mennyi a P és Q?====
====Meg volt adva egy Line osztály és 4 fv: create(m,b),getM(),getB(),y(x). Az y metódus a paraméterként kapott x koordinátához tartozó y koordinátát számolja ki az egyenes egyenletéből. Mennyi a LCOM? Mennyi a P és Q?====


''(A X B = A metszet B)''
''(A X B = A metszet B)''
40. sor: 38. sor:
LCOM = 0  
LCOM = 0  


====04. Acceptor-Connector milyen problémán alapszik? Hogyan lehet megoldani?====
====Acceptor-Connector milyen problémán alapszik? Hogyan lehet megoldani?====


* Probléma: összefonódik akapcsolódó és a kommunikációs szerep.
* Probléma: összefonódik akapcsolódó és a kommunikációs szerep.
* Megoldás: a kapcsolódás és inicializálás különválasztása a szolgáltatás nyújtásától.
* Megoldás: a kapcsolódás és inicializálás különválasztása a szolgáltatás nyújtásától.


====05. Hibernate-ben az objektumoknak milyen állapotai a persistence contexthez képest?====
====Hibernate-ben az objektumoknak milyen állapotai a persistence contexthez képest?====


* tranziens
* tranziens
51. sor: 49. sor:
* lecsatolt (detached)
* lecsatolt (detached)


====06. Ismert Visitor Combinatorokkal(Sequence, Choice, Try,Identity, Fail) if-then-else-t csinálni. Tehát ha v1 nem hal el, akkor v2, egyébként v3.====
====Ismert Visitor Combinatorokkal(Sequence, Choice, Try,Identity, Fail) if-then-else-t csinálni. Tehát ha v1 nem hal el, akkor v2, egyébként v3.====


* Choice(Sequence(V1, V2), V3) - Ha V1 exeptiont dob V2 nem fut le a Choice elkapja és lefut V3
* Choice(Sequence(V1, V2), V3) - Ha V1 exeptiont dob V2 nem fut le a Choice elkapja és lefut V3
57. sor: 55. sor:
-- [[SzSzilveszter]] - 2011.05.23.
-- [[SzSzilveszter]] - 2011.05.23.


====07. Fehérek játszanak feketék ellen. Mezőkön lépkednek, amin lehetnek aknák és sütik. A játékosok ütközhetnek aknával, sütivel, és egymással. Az ütközést Visitor patternnel kell megcsinálni. UML-t kell rajzolni ezekből, és metódusokat feltüntetni.====
====Fehérek játszanak feketék ellen. Mezőkön lépkednek, amin lehetnek aknák és sütik. A játékosok ütközhetnek aknával, sütivel, és egymással. Az ütközést Visitor patternnel kell megcsinálni. UML-t kell rajzolni ezekből, és metódusokat feltüntetni.====


%ATTACHURL%/uml.jpg
[[File:OotVizsga20090528_uml.jpg]]


{{InLineFileLink|Infoszak|OotVizsga20090528|uml.jpg|Kép}} és {{InLineFileLink|Infoszak|OotVizsga20090528|uml.uml|StarUML}} fájl csatolva.


====08. Holtponthoz vezet-e, ha B-t példányosítjuk? Miért?====
====Holtponthoz vezet-e, ha B-t példányosítjuk? Miért?====


<pre>
<pre>
86. sor: 83. sor:
Nem, a példányosítás során semmi szinkronizálandó dolog nem fut. De ha meghívjuk B foo() metódusát, akkor sem, mert ezek egymásba ágyazhatóak.
Nem, a példányosítás során semmi szinkronizálandó dolog nem fut. De ha meghívjuk B foo() metódusát, akkor sem, mert ezek egymásba ágyazhatóak.


====09. RMI során átadható paraméterek osztályozása és a paraméterátadás módja (felsorolás + 1-1 rövid mondattal jellemzés)====
====RMI során átadható paraméterek osztályozása és a paraméterátadás módja (felsorolás + 1-1 rövid mondattal jellemzés)====


* [[OotElosztottRendszerek]]
* [[OotElosztottRendszerek]]


====10. XSD-ben sorrendiséget és gyakoriságot befolyásoló attribútumok====
====XSD-ben sorrendiséget és gyakoriságot befolyásoló attribútumok====


* Sorrendiséghez:  
* Sorrendiséghez:  
99. sor: 96. sor:
** minOccurs maxOccurs attribútumok
** minOccurs maxOccurs attribútumok


====11. Mi legyen Q és T, hogy a lehető legtágabb lehetőségekre legyen igaz?====
====Mi legyen Q és T, hogy a lehető legtágabb lehetőségekre legyen igaz?====


<pre>
<pre>
106. sor: 103. sor:
void push(E e) {...}
void push(E e) {...}
E pop() {...}
E pop() {...}
public E moveAndTake(MySet&lt;<b>T</b>> m1, MySet&lt;<b>Q</b>> m2){
public E moveAndTake(MySet&lt;T> m1, MySet&lt;Q> m2){
  E last = null;
  E last = null;
  while (!m1.isEmpty()){
  while (!m1.isEmpty()){
121. sor: 118. sor:
* Q - ? super E
* Q - ? super E


====12. Milyen plusz függvényei vannak a ListIterator-nak az Iterator-hoz képest?====
====Milyen plusz függvényei vannak a ListIterator-nak az Iterator-hoz képest?====


* previousIndex()
* previousIndex()
130. sor: 127. sor:
* set()
* set()


====13. Verziókezelők fajtáiról írjon pár mondatot====
====Verziókezelők fajtáiról írjon pár mondatot====


* RCS (Revision Control System)
* RCS (Revision Control System)

A lap jelenlegi, 2017. július 12., 15:22-kori változata

OO Vizsga 2009-05-28

Meg volt adva egy A osztály, melynek volt 1 private, 1 public, 1 static és 1 transient tagváltozója. Mellette egy kódrészlet, ahol egy A objektum létre van hozva, bevannak állítgatva a változói, majd le van szerializálva. Ezután még egy létre van hozva, bellítgatva és szerializálva. Végül a streamből be van olvasva egy A, és a kérdés, hogy mik lesznek a változóinak az értékei. (4 pont)

  • A private és a public arra áll vissza ami az első serializalt példánynál volt, a tranzient az null lesz, a static meg annak az érteket veszi fel amit masodik peldanynal allitottunk be. (ez utóbbi nem a szerializálás miatt ugyebár, de akkor is az lesz, mert osztályszintű a static, és A az A a beolvasásnál is, tehát valójában nem deserializálva lett hanem inicializálva) PZs

Booleant szeretnénk betenni OO adatbázisba. createRoot("bool",XXX). XXX helyére mit írhatunk

  • boolean értéket
  • Persistence aware objektumot, melynek van booleant visszaadó fv-je
  • Persistence ready objektumot, melynek van boolean tagváltozója
  • Előző 3-at
  • Mást: ............
  • Hat ha ez itt most a nagybetus Boolean, akkor csomgolot kell letrehozni, tehat "new Boolean(b)"-t peldaul, ahol b lehet true/false v. "true"/"false" is.
 * Mehet sima boolean, mert az autoboxing miatt Boolean lesz belőle. Feltéve, hogy nem a fos 1.3-as verziót kérik vissza... CsL

Meg volt adva egy Line osztály és 4 fv: create(m,b),getM(),getB(),y(x). Az y metódus a paraméterként kapott x koordinátához tartozó y koordinátát számolja ki az egyenes egyenletéből. Mennyi a LCOM? Mennyi a P és Q?

(A X B = A metszet B)

Acreate(m,b) = {m,b}
AgetM() = {m}
AgetB() = {b}
Ay(x) = {m,b}

Acreate(m,b) X AgetM() = {m}
Acreate(m,b) X AgetB() = {b}
Acreate(m,b) X Ay(x) = {m,b}
AgetM() X AgetB() = {}
AgetM() X Ay(x) = {m}
AgetB() X Ay(x) = {b}

P = 1 (AgetM() X AgetB()) Q=5 (tobbi)
LCOM = P - Q = 1 - 5 // *signum(x), ha negatív az eredmény, akkor 0 a megoldás!!!
LCOM = 0

Acceptor-Connector milyen problémán alapszik? Hogyan lehet megoldani?

  • Probléma: összefonódik akapcsolódó és a kommunikációs szerep.
  • Megoldás: a kapcsolódás és inicializálás különválasztása a szolgáltatás nyújtásától.

Hibernate-ben az objektumoknak milyen állapotai a persistence contexthez képest?

  • tranziens
  • perzisztens
  • lecsatolt (detached)

Ismert Visitor Combinatorokkal(Sequence, Choice, Try,Identity, Fail) if-then-else-t csinálni. Tehát ha v1 nem hal el, akkor v2, egyébként v3.

  • Choice(Sequence(V1, V2), V3) - Ha V1 exeptiont dob V2 nem fut le a Choice elkapja és lefut V3

(Ezzel már csak az a kérdésem maradt, hogy az nem baj, hogy a Sequence-nél nincsen throws VF ???, ha igen akkor kétségesnek tartom, hogy megoldható-e a feladat egyáltalán.) -- SzSzilveszter - 2011.05.23.

Fehérek játszanak feketék ellen. Mezőkön lépkednek, amin lehetnek aknák és sütik. A játékosok ütközhetnek aknával, sütivel, és egymással. Az ütközést Visitor patternnel kell megcsinálni. UML-t kell rajzolni ezekből, és metódusokat feltüntetni.


Holtponthoz vezet-e, ha B-t példányosítjuk? Miért?

class A {
	synchronized void bar() {
		System.out.println("Deadlocked");
	}
}
class B {
	private A a;
	public B() {
		a = new A();
	}
	void foo() {
		synchronized(a) {
			a.bar();
		}
	}
}

Nem, a példányosítás során semmi szinkronizálandó dolog nem fut. De ha meghívjuk B foo() metódusát, akkor sem, mert ezek egymásba ágyazhatóak.

RMI során átadható paraméterek osztályozása és a paraméterátadás módja (felsorolás + 1-1 rövid mondattal jellemzés)

XSD-ben sorrendiséget és gyakoriságot befolyásoló attribútumok

  • Sorrendiséghez:
    • all - tetszőleges sorrendben
    • choice - a listából csak az egyik
    • sequence - pontosan ugyanabban a sorrendben
  • Gyakoriság:
    • minOccurs maxOccurs attribútumok

Mi legyen Q és T, hogy a lehető legtágabb lehetőségekre legyen igaz?

class MySet<E> {
	 MySet() {...}
	 void push(E e) {...}
	 E pop() {...}
	 public E moveAndTake(MySet<T> m1, MySet<Q> m2){
		  E last = null;
		  while (!m1.isEmpty()){
				last = m1.pop();
				m2.push(last);
		  }
		  last = pop();
		  return last;
	 }
}
  • T - ? extends E
  • Q - ? super E

Milyen plusz függvényei vannak a ListIterator-nak az Iterator-hoz képest?

  • previousIndex()
  • nextIndex()
  • hasPrevious()
  • previous()
  • add()
  • set()

Verziókezelők fajtáiról írjon pár mondatot

  • RCS (Revision Control System)
  • CVS (Concurrent Versions System)
  • SVN (Subversion)

-- Endre - 2009.06.11.

-- Csádám - 2010.05.31.