Arvutiteaduse instituut
  1. Kursused
  2. 2024/25 kevad
  3. Objektorienteeritud programmeerimine (LTAT.03.003)
EN
Logi sisse

Objektorienteeritud programmeerimine 2024/25 kevad

  • Kodutööd ja praktikumid
  • Loengud
  • Kursuse korraldus
  • IDE juhend
  • Süvendusrühm
  • Silumisest

Telekanalid

Põhja-Korea juhid tahavad oma 60-tollistest 3D telekatest uudiseid vaadata. Riigis levib ametlikult ainult maailma parim kanal "Põhja-Korea rahvuslikud uudised". Lisaks levitavad mässulised piraat-telejaama "Põhja-Korea maailmauudised", mis edastab kohalikku kanalit ja lisaks ka Fox News uudiseid. Riigipea saab Fox Newsi ka otse oma satelliidi-vastuvõtjast vaadata.

  • Loo interface BroadcastListener, kus on meetod void listen(String).
  • Loo class Broadcaster, kus on meetodid void subscribe(BroadcastListener) ja void broadcast(String). Broadcaster jätab meelde kõik BroadcastListenerid, mis talle subscribe meetodiga ette antakse. broadcast meetodi kutsumisel tuleb kõigile listeneridele ette antud string edasi anda (listen meetodit kutsuda).
  • Loo Broadcaster alamklass TVStation. Loo konstruktor, mis võtab parameetriks listi uudistest. Lisa meetod void sendNews(), mis broadcastib (ülemklassi meetodi abil) uudiste listist suvalise uudise.
  • Loo Broadcaster alamklass PirateStation, mis lisaks implementib BroadcastListener. PirateStation võtab teiste jaamade saateid vastu (listen) ja broadcastib need kohe kõigile oma kuulajatele edasi.
  • Loo klass TV, mis implementib BroadcastListener. TV konstruktoriga peab määrama omaniku nime. Kõik kohale jõudvad uudised prindi koos TV omaniku nimega System.out-i.

Loo testklass, mis funktsionaalsust testib.

  • Loo TVStation objektid "Põhja-Korea rahvuslikud uudised" ja "Fox News" jaoks. Mõlemal on oma erinev uudiste list. Loo PirateStation, mis võtab vastu ja edastab mõlema eelneva uudiseid.
  • Loo TV Kim Jong-un jaoks, mis kuulab Fox News ja rahvuslikke uudiseid (otse, mitte läbi piraatkanali).
  • Loo TV Kim Yong-nam jaoks, mis kuulab ainult rahvuslikke uudiseid.
  • Loo TV Pak Pong-ju jaoks, mis kuulab piraatkanalit (selle kaudu mõlemaid teisi kanaleid).
  • Käivita mõlema uudistekanali sendNews() ja veendu, et õiged isikud õiged uudiseid kuulevad.

Subscribe/broadcast, addEventListener/fireEvent, addObserver/notify - need kõik on erinevad kujud Observer patternist. See on väga levinud ja kasulik tehnika, mis aitab koodi modulaarsemaks ja taaskasutatavamaks muuta. Mõned näited, kus seda veel kasutatakse:

  • Kasutaja klõpsab nupu peale - nupp teeb fireEvent ja kõik EventListenerid saavad reageerida.
  • Programm alustab taustaprotsessina faili allalaadimist. Selle lõppedes saavad kõik DownloadObserverid teate, et fail on kasutamiseks valmis.
  • Koodikomponent ootab võrgust tulevaid teateid. Vastuvõtja teavitab teda sobiva teate saabumisest.
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused