Version: 5. félév

4. Gyakorlat

Órai feladatsor#

Account#

Készítsd el az Account osztályt!

Adattagjai:

  • owner (a tulaj neve)
  • balance (a jelenleg rajta található összeg / tartozás)
  • log (időrendi lista, ami tartalmazza a time stamp-et, a változást és a változás utáni összeget)

Műveletei:

  • transfer: a megadott összeggel változtatja a balance értékét, a változást feljegyzi a logba
  • maxIncome: megkeresi a legnagyobb költséget
    tedd az objektumot szálbiztossá

TransferValidator#

Készítsd el a TransferValidator osztályt! Műveletei:

  • isValid: három adatot kap: forrás számla, cél számla, összeg. Egy művelet akkor érvényes, ha mindkét számla összege pozitív a tranzakció utáni

Egyszerre csak 3 validáció történhet a rendszerben (módosítsd az Account osztályt a szükséges módon)

TransferValidator#

Modosítsd a TransferValidator -t úgy, hogyha nem sikerül 3 s-on belül ellenőriznie a műveletet, akkor dobjon TimeoutException-t.

Bank#

Készíts Bank osztályt, aki szálbiztos. Lekérdező műveleti korlátlan számban hívhatók, módosító műveletei kizárásban futnak egymással.
Műveletei:

  • getBalance; paramétere a tulajdoson neve (olvasó művelet)
  • createBalance; paramétere a tulajdonos neve és a nyitóösszeg. Egy tulajnak csak egy számlája lehet. Új számlát nyit. (író művelet)
  • closeBalance; paramétere a tulajdonos neve, megszűnteti a számlát (író művelet)
  • transfer; paraméterei a küldő tulajdonos, a fogadó tulajdonos és az összeg. Csak érvényes műveleteket enged
Last updated on