Objektumorientált szoftvertervezés - KisZH-k, 2009.
A VIK Wikiből
1. KisZH (Java)
A csoport
- 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!
- 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
- Melyik interface deklarálja a
out.writeObject(_SerializableClass)
metódust?- 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)
- 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
- 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
- Volt egy osztály egy statikus int-tel (
minsalary
), valamint egygetSalary()
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.