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

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
(Ú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…”)
 
(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., 14:22-kori változata

OO Vizsga 2009-05-28

Tartalomjegyzék

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.

Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni


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.