Programozás III ÖTLETEK A FELADATMEGOLDÁSHOZ
A HF-EK APROPÓJÁN Néhány javaslat: 1. Jó lenne, ha a feladatmegoldás előtt átnéznék az előadás-anyagokat is. 2. És persze, a gyakorlati feladatokat is. 3. No meg a feladat szövegét. Ha nem világos, nyugodtan meg lehet kérdezni.
A HF-EK APROPÓJÁN Végig kell gondolni, hogy mi változó, mi metódus, mit hol kell kiszámolni (meghatározni). A vezérlő osztály feladata lehetőleg csak a vezérlés. Alap-osztályokban NINCS input/output ha valahogy tudatni kell a hívó osztállyal, hogy eredményes-e a hívás vagy sem, akkor void helyett pl. boolean metódust írunk. Hibakeresés: Olvassák el a hibaüzenetet!! Teszteljék a futást!
A HF-EK APROPÓJÁN Tesztelés: 1. Lehetnek teszt célú kiíratások. de inkább debug, pl: Berakhatunk break pointo(ka)t, ezeket figyelhetjük. debug indításaleállításléptetések Tutorial/NetBeansDebuggerTutorial.htm
A HF-EK APROPÓJÁN „Megelőző” megjegyzések: Ne írjanak kilométeres sorokat. Lehetőleg ne használjanak ilyen változóneveket: o, O, l, I (kis O, nagy O, kis L, nagy I) Lehetőleg végezzenek ELLENŐRZÖTT beolvasást. Örüljenek a jól sikerült megoldásnak.
A HF-EK APROPÓJÁN Osztálynév kiíratása: vagy this.getClass().getSimpleName().toLowerCase(), vagy kell egy String getOsztalyNev() metódus. Lehet-e két toString()? Nem, de a/ lehet mellette más String eredmenyString() metódus; b/ lehet egy feltételtől függő elágazás a toString()-en belül.
MEGOLDÁSI ÖTLETEK Vélemények: a/ De jó, hogy végre eljutottunk idáig. b/ Jó, de nekem ez zh-ig túl sok.
MEGOLDÁSI ÖTLETEK Hogyan lehet minimális ráfordítással felhasználni az eddigieket? Ha az eddigieket érti és alaposan át is tudja gondolni, akkor remekül fel tudja használni őket. Nézzük a médiás példát!
MEGOLDÁSI ÖTLETEK Az eddigi:
EREDETI
ÚJ KÍVÁNSÁG Hogyan kellene módosítani, hogy grafikus felületre is jó legyen?
MEGOLDÁSI ÖTLETEK Azok a metódusok, amelyek nem írnak közvetlenül a konzol- ra, változtatás nélkül felhasználhatóak.
MEGOLDÁSI ÖTLETEK Az új projekt: A két vezérlő osztály közül bármelyik indítható.
MEGOLDÁSI ÖTLETEK Módosítási javaslat: csináljuk ugyanazt, mint eddig. (A MediaFrame osztályban)
MEGOLDÁSI ÖTLETEK
De az előző diasorozatban nem ez a legfontosabb, hanem: Az, hogy az eddig tanultak teljes mértékben felhasznál- hatóak, és ha jó a programlogika, akkor majdnem mindegy, hogy konzolos vagy grafikus felületen jelenítjük meg az eredményeket. Ezek a tapasztalatok jó előkészítői lehetnek az MVC/MVP tervezési mintának.
Pl. Ember példányok egyedi sorszámozása a/ Ember osztályban: vagy a konstruktorban adjuk meg, vagy set metódussal Probléma: nem egyedi, hiszen a sorszám értéke a példányosítótól vagy a példány használójától függ. (Ez persze nem jelenti azt, hogy ne adhatnánk kívülről generált, egymástól eltérő sorszámokat, csak ilyenkor lehetne egyformákat is adni.) ADÓSSÁG: EGYEDI SORSZÁM
b/ Az Ember osztályban bevezetünk egy minden emberre jellemző statikus változót – ez lesz az utolsó ember sorszáma. Az új ember a rákövetkező sorszámot kapja: Probléma: meg kell érteni EGYEDI SORSZÁM
Hogyan oldható meg, hogy a kihívottak újabb embereket hívjanak ki, majd azok még újabbakat, stb? MÉG EGY: A JAVA CHALLANGE