Institute of Computer Science
  1. Courses
  2. 2025/26 fall
  3. Object-oriented Programming (Conversion Master in IT) (LTAT.03.003)
ET
Log in

Object-oriented Programming (Conversion Master in IT) 2025/26 fall

  • Kodutööd ja praktikumid
  • Loengud
  • Kursuse korraldus
  • IDE juhendid
  • Silumisest

3. praktikum. Harjutused.

NB! Praktikumiülesandeid antakse alati varuga, et ka kõige kiirematel/kogenumatel lahendajatel jätkuks tegevust. Seega pole mõtet kurvastada, kui te ei jõua kõiki lahendada. Vaadake ülesanded rahulikult üle ja lahendage ära just need, mis tunduvad teile huvitavad ja/või parajalt jõukohased/väljakutsuvad (kui just teie praktikumijuhendaja pole teile soovitanud mingit konkreetset ülesannet).

1. Seade

Klass Seade sisaldab privaatseid isendivälju koodi (int), nimetuse (String) ja ilma käibemaksuta hinna (double) jaoks. Lisaks on klassis staatiline muutuja (double), mis määrab käibemaksuprotsendi, olgu selle väärtuseks 20. Klassis on konstruktor. Klassis on vähemalt järgmised meetodid.

  • Kõigi isendiväljade jaoks on vastavad get- ja set-meetodid.
  • Meetod kmhind (double-tüüpi), mis tagastab hinna arvestades käibemaksuga. (Kui käibemaks on nt. 20%, siis 100 eurose käibemaksuta hinna korral on käibemaksuga hind 120 eurot.)
  • On ka meetod toString, mis võimaldab seadme andmeid mõistlikult ekraanil kujutada, näidates ka hinda käibemaksuga. (Kasutada vastavat meetodit.)

Peaklassis (testklassis) luuakse erinevad seadmed. Seadmete andmed väljastatakse ekraanile.

2. Staatiline segadus

Proovige käivitada järgnevat koodi. Miks kompileerimine ebaõnnestub? Muutke koodi nii, et programm töötaks ootuspäraselt. (Vihje: static võtmesõnade lisamine on vale lahendus!)

public class Isik {
  private String nimi;
  private double pikkus;

  public Isik(String isikuNimi, double isikuPikkus) {
    nimi = isikuNimi;
    pikkus = isikuPikkus;
  }

  public int suusakepiPikkus() {
    return (int) Math.round(0.85 * pikkus * 100);
  }

  public static void main(String[] args) {
    System.out.println("suusakepi pikkus on " + suusakepiPikkus());
  }
}

3. Reisid

1. Klassis Lennuk on privaatsed isendiväljad nime (String), keskmise kiiruse (double) ja maksimaalse reisijate arvu (int) jaoks. Klassis on konstruktor. Klassis on vähemalt järgmised meetodid.

  • Kõigi isendiväljade jaoks on vastavad get- ja set-meetodid.
  • On ka meetod toString, mis võimaldab lennukit mõistlikult ekraanil kujutada.

2. Klassis Reis on privaatsed isendiväljad reisi sihtpunkti (String), sihtpunkti kauguse (int) ja lennuki (Lennuk) jaoks ning müüdud piletite arvu (int) jaoks. Klassis on konstruktor. Klassis on vähemalt järgmised isendimeetodid.

  • Kõigi isendiväljade jaoks on vastavad get-meetodid.
  • Meetod (int-tüüpi), mis tagastab antud reisi kestvuse minutites. (Arvutustes kasutada lennuki keskmist kiirust.)
  • Meetod (int-tüüpi), mis tagastab antud reisi vabade kohtade arvu (arvestades lennukis olevate kohtade arvu ja müüdud piletite arvu).
  • On ka meetod toString, mis võimaldab reisi mõistlikult ekraanil kujutada.

3. Peaklassis luuakse vähemalt kaks lennukit (nt lennuk Fokker F50, mille keskmine kiirus on 530 km/h ning maksimaalne reisijate arv on 46, ja BN-2, mille keskmine kiirus on 170 km/h ning maksimaalne reisijate arv on 9) ja vähemalt kolm reisi. Peaklassis testitakse ka erinevate isendimeetodite tööd (vastavate isendimeetodite abil leida reiside kestvusi ja vabade kohtade arve).

4. Hekk

1. Klassis Põõsas on privaatsed isendiväljad põõsa kõrguse (double) ja laiuse (double) jaoks. Klassis on konstruktor ja vähemalt järgmised meetodid.

  • Kõigi isendiväljade jaoks on vastavad get- ja set-meetodid.
  • Meetod (double-tüüpi), millel pole argumente ja mis tagastab kõrguse prognoositava aastajuurdekasvu, mis on juhuslik arv vahemikust 0 kuni 0,1*kõrgus. (Ümardada pole vaja.)
  • On ka meetod toString, mis võimaldab põõsa andmeid mõistlikult ekraanil kujutada. Eelmise meetodi abil näidatakse ka prognoositav aastajuurdekasv.

2. Klassis Hekk on isendiväljad heki nime (String) ja selles hekis olevate põõsaste massiivi jaoks (Põõsas[]). Klassis on konstruktor ja vähemalt järgmised meetodid.

  • Meetod, mille tagastustüübiks on double ja mis tagastab hekis oleva kõige kõrgema põõsa kõrguse.
  • Meetod, mille tagastustüübiks on double ja mis tagastab heki pikkuse ehk hekis olevate põõsaste laiuste summa.
  • On ka meetod toString, mis võimaldab heki andmeid mõistlikult ekraanil kujutada, tuues välja heki nime, kõige kõrgema põõsa kõrguse ja heki pikkuse. (Kasutada vastavaid meetodeid.)

3. Peaklassis tehakse järgmised tegevused.

  • Luuakse viis põõsast (Põõsas-tüüpi isendit).
  • Kõikidest Põõsas-tüüpi isenditest tehakse Põõsas[]-tüüpi massiiv. (Massiivi võib ka enne põõsaid luua ja järjest täita.)
  • Luuakse üks Hekk-tüüpi isend kasutades argumendina eelmainitud massiivi.
  • Heki andmed väljastatakse ekraanile.
  • Tsükli abil kuvatakse massiivist põõsad ekraanile.
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment