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

A VIK Wikiből
Hryghr (vitalap | szerkesztései)
a Hryghr átnevezte a(z) 2009-es !KisZH-k lapot a következő névre: Objektumorientált szoftvertervezés - KisZH-k, 2009.
Harapeti (vitalap | szerkesztései)
tördelési hibák javítása
46. sor: 46. sor:
=2. KisZH (Perzisztencia)=
=2. KisZH (Perzisztencia)=
==A csoport==
==A csoport==
# Melyik interface deklarálja a out.writeObject(_SerializableClass) fv-t? '''ObjectOutput'''
# Melyik interface deklarálja a out.writeObject(_SerializableClass) fv-t?
# Mire jó a Hibernate-ben a <discriminator>? '''table-per-class-hierarchy esetén meghatározza a gyerekosztály (subclass) típusát'''
#: '''ObjectOutput'''
# Mire jó a Hibernate-ben a <discriminator>?
#: '''table-per-class-hierarchy esetén meghatározza a gyerekosztály (subclass) típusát'''
# Milyen állapotai vannak Hibernate-ben a Session-höz képest a perzisztens objektumoknak?(4db)
# Milyen állapotai vannak Hibernate-ben a Session-höz képest a perzisztens objektumoknak?(4db)
  * '''Tranziens''' (Transient): objektumot kódból hoztuk létre, adatbázisban nem szerepel
#:* '''Tranziens''' (Transient): objektumot kódból hoztuk létre, adatbázisban nem szerepel
  * '''Perzisztens''' (Persistent): az objektum szinkronizálva van az adatbázis táblákkal (unit of work commitnál íródik ki ténylegesen)
#:* '''Perzisztens''' (Persistent): az objektum szinkronizálva van az adatbázis táblákkal (unit of work commitnál íródik ki ténylegesen)
  * '''Lekapcsolt''' (Detached): perzisztens volt, de az adatbázissal azóta megszűnt a kapcsolat, így jelenleg nincs szinkronban. Új Sessionhöz később hozzá lehet kapcsolni.
#:* '''Lekapcsolt''' (Detached): perzisztens volt, de az adatbázissal azóta megszűnt a kapcsolat, így jelenleg nincs szinkronban. Új Sessionhöz később hozzá lehet kapcsolni.
  * http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-overview
#: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-overview
# Igazakat kellett bejelölni: OO adatbázisban:
# Igazakat kellett bejelölni: OO adatbázisban:
* Nem lehetnek párhuzamos Session-ök egy adatb-hez - '''HAMIS'''
#:* Nem lehetnek párhuzamos Session-ök egy adatb-hez - '''HAMIS'''
* Nem lehetnek más JVMből indított Session-ök egy adatb-hez - '''HAMIS'''
#:* Nem lehetnek más JVMből indított Session-ök egy adatb-hez - '''HAMIS'''
* Lehet több, azonos JVMből indított Session egy adatb-hez - '''IGAZ'''
#:* Lehet több, azonos JVMből indított Session egy adatb-hez - '''IGAZ'''
# Volt egy osztály egy statikus int-el(minsalary), valamint egy getSalary() fv-vel. Meg volt adva egy query, amiben a feltétel: getSalary()>minsalary (OO adatb).Igazakat kellett jelölni:
# Volt egy osztály egy statikus int-tel (<code>minsalary</code>), valamint egy <code>getSalary()</code> metódussal. Meg volt adva egy query, amiben a feltétel: <code>getSalary()>minsalary</code> (OO adatb). Igazakat kellett jelölni:
* Hibás, mert csak tagváltozók szerepelhetnek a query-ben
#:* Hibás, mert csak tagváltozók szerepelhetnek a query-ben
* Hibás, mert statikus változók nem szerepelhetnek a query-ben
#:* Hibás, mert statikus változók nem szerepelhetnek a query-ben
* Hibás, mert kollekció kellene, és nem osztály (?)
#:* Hibás, mert kollekció kellene, és nem osztály (?)
* '''Korrekt'''
#:* '''Korrekt'''
 
==B csoport==
==B csoport==



A lap 2014. március 24., 01:01-kori változata

1. KisZH (Java)

A csoport

  1. Milyen template paramétert adjunk meg az osztálynak/függvénynek a kipontozott helyekre, hogy a lehető legáltalánosabb megoldást kapjuk?

Ilyen jellegűek voltak, 4 helyre kellett behelyettesíteni:

public E popTo(Fifo[...] f1, Fifo[...] f2){
  E last = null;
  while (!f1.isEmpty()){
	 last = f1.pop();
	 f2.push(last);
  }
  return last;
}

Ajánlatos az 1. diasor 10-11. oldalán lévő kódokat nézegetni, ott meg is találjátok a megoldásokat!

  1. Mit ír ki?
public class A {
  private void f1(){System.out.println("A.f1");}
  public void f2() {System.out.println("A.f2");}
  public void f3() { f1(); }
  public void f4() { f2(); }
}

public class B extends A {
  private void f1() {System.out.println("B.f1");}
  public void f2() {System.out.println("B.f2");}
  public static void main(String[] args) {
	 A a2 = new B();
	 a2.f3(); // A.f1
	 a2.f4(); // B.f2
  }
}

Ehhez a feladathoz magyarázat az 1. diasor 2. oldalán (18-as dia)

B csoport

  • 1. Ugyanez volt a feladat, minimálisan különböző függvényekkel. Persze ez pont elég volt, hogy más template paramétert várjanak! :)
  • 2. Hasonló volt a feladat, de f1-ek publikusak voltak. (Így működött a virtuális függvények felülírása a leszármazottban.)

2. KisZH (Perzisztencia)

A csoport

  1. Melyik interface deklarálja a out.writeObject(_SerializableClass) fv-t?
    ObjectOutput
  2. Mire jó a Hibernate-ben a <discriminator>?
    table-per-class-hierarchy esetén meghatározza a gyerekosztály (subclass) típusát
  3. Milyen állapotai vannak Hibernate-ben a Session-höz képest a perzisztens objektumoknak?(4db)
    • Tranziens (Transient): objektumot kódból hoztuk létre, adatbázisban nem szerepel
    • Perzisztens (Persistent): az objektum szinkronizálva van az adatbázis táblákkal (unit of work commitnál íródik ki ténylegesen)
    • Lekapcsolt (Detached): perzisztens volt, de az adatbázissal azóta megszűnt a kapcsolat, így jelenleg nincs szinkronban. Új Sessionhöz később hozzá lehet kapcsolni.
    http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-overview
  4. Igazakat kellett bejelölni: OO adatbázisban:
    • Nem lehetnek párhuzamos Session-ök egy adatb-hez - HAMIS
    • Nem lehetnek más JVMből indított Session-ök egy adatb-hez - HAMIS
    • Lehet több, azonos JVMből indított Session egy adatb-hez - IGAZ
  5. Volt egy osztály egy statikus int-tel (minsalary), valamint egy getSalary() metódussal. Meg volt adva egy query, amiben a feltétel: getSalary()>minsalary (OO adatb). Igazakat kellett jelölni:
    • Hibás, mert csak tagváltozók szerepelhetnek a query-ben
    • Hibás, mert statikus változók nem szerepelhetnek a query-ben
    • Hibás, mert kollekció kellene, és nem osztály (?)
    • Korrekt

B csoport

3. KisZH (Hálózatkezelés, RMI)

A csoport

  • 1. Mik a (natív) TCP/IP alapú hálózatkezelés jellemzői? (2 pont)

(9 hely volt kihagyva)

  • 2. (Hasonló az B csoporthoz)
  • 3. Mik az mobil ügynök megérkezésével kapcsolatos problémák? (2 pont)

B csoport

  • 1. Mik a hálózati keretrendszer alapú hálózatkezelés jellemzői? (2 pont)

(9 hely volt kihagyva)

  • 2. Mi a hiba az adott kódban? Szintaktikai hiba nincs. (2 pont)

A feladat arra akart volna rámmeni, hogy minden függvény dob-e RemoteException-t és hogy a bemenő és kimenő paraméterek szerializálhatóak-e.

public class W extends Runnable {...} // adott 
public class T extends Serializable {...} // adott

void foo(...) throws IOException
void bar(...) throws RemoteException
double baz(...) throws Exception
T goo(...) throws NumberFormatException
  • 3. Mik a mobil ügynökkel kapcsolatos biztonsági problémák? (2 pont)

4. KisZH (Java ablakkezelés, Swing)

A csoport

  • 1. Mik a konténerek felelősségei? (2 pont)
  • 2. A1 ablak K1 komponenséből átkattintunk az A2 ablak K2 komponensére. Milyen sorrendben következnek be a következő események? (2 pont)
    • K1: LOST_FOCUS
    • A1: WINDOW_LOST_FOCUS
    • A1: WINDOW_DEACTIVATED
  • Mi a GridBagConstraint osztály felelőssége? (2 pont)

B csoport

  • 1. Milyen tervezési mintát valósítanak meg az alábbi osztályok (2 pont)
    • BorderLayout
    • ActionAdapter
    • JScrollPane
  • 2. A1 ablak K1 komponenséből átkattintunk az A2 ablak K2 komponensére. Milyen sorrendben következnek be a következő események? (2 pont)
    • K2: FOCUS_GAINED
    • A2: WINDOW_GAINED_FOCUS
    • A2: WINDOW_ACTIVATED
  • 3. Ha AWT-s alkalmazásunkat Swingesre szeretnénk átírni, miért nem lehet a java.awt.List osztályt egyszerű névcserével lecserélni javax.swing.JList-re? (2 pont)


5. KisZH

hasonló a 2008-as kisZH-hoz

-- Velias - 2009.03.17.