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

IDE juhend

Downloadi Java SE JDK siit

  1. IntelliJ IDEA sissejuhatus
  2. Logimine pistikprogrammiga PALG
  3. Käsurea argumendid
  4. Kasulike hoiatuste lisamine
  5. Kodeering

IntelliJ IDEA sissejuhatus

IntelliJ saate lehelt https://www.jetbrains.com/idea/download/. IntelliJ on JetBrains poolt loodud Java arenduskeskkond, mis muudab koodi kirjutamise oluliselt mugavamaks, kui see lihtsalt Notepadi kasutades oleks. IntelliJ community edition (tasuta) keskendub Java ökosüsteemile, IntelliJ ultimate edition (ut.ee meiliga tudengitele tasuta) lisab võimalused ka veebirakenduste arendamiseks. IntelliJ peamised eelised siin kursusel on:

  • levinud vigade ja probleemide jooksvalt välja toomine (code inspections);
  • muutujate ja funktsioonide nimede automaatne lõpetamine (code completion);
  • kiire ja mugav koodis navigeerumine (leiab kõik meetodi kasutuse kohad, kasutamise kohast definitsiooni juurde hüppamine jne).

IntelliJ installeerimisel võib märkida järgmised valikud:

IntelliJ võib esmakordsel käivitamisel mõned küsimused esitada. Customize IntelliJ IDEA aknas võib valida Skip All and Set Defaults.

Esimest korda Java projekti luues (nupp New Project) tuleb ka Java installeerida (kui Java ei ole eraldi enne installeeritud).

Vajutage JDK juures Download JDK ja sealt Oracle OpenJDK 21. Jätke meelde, kuhu Java installeeritakse.

Kui Java on juba arvutis olemas, siis esimest korda Java projekti luues tuleb IntelliJ'ile ette näidata, kuhu Java on installitud. Vajutage JDK juures Add JDK.

Projekti loomisel additional libraries ja templates peaks kõik valimata jätma.

Olemasoleva projekti avamiseks valige File-menüüst New, Project from Existing Sources ja avage projekti kaust (see, mille sees on src kaust, mitte src kaust ise). Vajutage Next, kuni IntelliJ import wizard rahule jääb. Erinevate murede korral võib olla mõistlik IntelliJs projekt sulgeda, projekti kaustast .idea kaust ja iml laiendiga projektifail ära kustutada ja projekt uuesti importida.

Hello world

  • Käivitage IntelliJ.
  • Looge uus Java projekt File --> New --> Project.
  • Kontrollige, et vasakul oleks lahti Project toolbar. Kui see on puudu, siis vajutage Alt+1 või hoidke hiirt all vasakul oleva ikooni peal ja valige Project.
  • Otsige Project-tööriistaribalt src kaust ja paremklõpsake sellel. Valige New --> Java Class ja määrake uuele klassile nimeks Tere. Uue klassi koodifail peaks avanema.
  • Lisage klassi main meetod ja kirjutage sinna midagi mõistlikku, mis ka midagi ekraanile väljastab:
public class Tere {
  public static void main(String[] args) {
    // uus kood siia
  }
}
  • Käivitage kood paremklõpsates main meetodil ja valides Run Tere.main()
  • Tulemus peaks ilmuma konsooliaknasse.

Eclipse sissejuhatus

Eclipse on vabavaraline arenduskeskkond, mis abistab arendajat koodi (Java, aga ka teiste keelte) kirjutamisel ja vigade otsimisel. See võimaldab programmi käivitada, leida kompileerimisvigu, mugavalt koodis navigeeruda ja koodi efektiivsemalt kirjutada (näiteks iselõpetamise (autocomplete) funktsionaalsus lõpetab meetodi ja muutujanimed). Lisaks on Eclipse-il suur hulk pistikprogramme, mis pakuvad lisafunktsionaalsust versioonihalduse kasutamiseks ja paljuks muuks.

Meie tegutseme Java projektidega. Põhieesmärgiks on algtekstide toimetamine, süntaktiline silumine ja käivitamine. Silumise hõlbustamiseks saab panna katkestuspunkte (breakpoint), mille abil saab jälgida muutujate väärtuste muutumist.

Andmed asuvad töökataloogis (workspace). Sinna peab kasutajal olema õigus kirjutada. Meie puhul sobib selleks nt. alamkataloog oop. Iga projekt paigutub eraldi alamkataloogi, milles siis on erinevad failid.

Püüdkem nüüd Eclipse käivitada

  • Arvutiklassis peaks Eclipse-i ikoon olema töölaual. (Kui pole, siis leidke kataloog, kus on uusim Eclipse.) Sülearvutites peaks Eclipse olema C kettal. Linuxi arvutiklassis Eclipse-i saab kätte kirjutades terminali aknas eclipse (Linuxi-s käsurearežiimi saab Terminaliga (Konsole) Kickoff Application Launcher --> Applications --> System --> Terminal (Konsole)).
  • Töökataloogiks määrake kataloog oop.
  • Tervitusaknad võite sulgeda, aga võite ka neid soovi korral lugeda.
  • Valige Window --> Perspective --> Open Perspective --> Others ...--> Java või ärge valige midagi, sest Java ongi vaikimisi valikus.

Kui soovite töötada juba varem tehtud failidega, siis kasutage importimist File --> Import... --> General --> File system.

Hello world (eclipse)

  • Käivitage Eclipse.
  • Looge uus Java projekt File --> New --> Java Project või File --> New --> Project ... --> Java Project.
  • Pange projektile mõistlik nimi. Esialgu võiks aktsepteerida vaikimisi vastuseid loomisdialoogis.
  • Nüüd peaks Package Explorer aknas olema teie loodud projekt olemas. Kui sellel hiire parema klahviga klõpsata, siis avaneb menüü.
  • Looge uus klass: New --> Class, nimi alaku suurtähega. Klassi loomise dialoogis
    • jätke Package tühjaks,
    • Modifiers olgu public,
    • Superclass olgu java.lang.Object,
    • loodavatest meetoditest märgime ära public static void main(String[] args).
  • Toimetiaknas on nüüd teksti toorik.
  • Kirjutage main-meetodisse midagi mõistlikku, mis ka midagi ekraanile väljastab, ja salvestage.
  • Käivitage Run --> Run või Run --> Run As --> Java Application.
  • Tulemus peaks ilmuma konsooliaknasse.

Logimine pistikprogrammiga PALG

Koos koduülesannetega tuleb esitada ka logi. Logimise jaoks kasutame IntelliJ pistikprogrammi (plug-in) nimega PALG (Programming Activity Log Generator). PALG salvestab logi eraldi failidesse vastavalt kasutussessioonidele. Oluline on silmas pidada, et peale PALGi installeerimist IntelliJ käivitamisel avatakse kirjutamine uude faili, mille nimi genereeritakse IntelliJ käivitamise hetke põhjal.

Pistikprogrammi PALG installeerimine

Avage File-menüüst Settings. Plugins aknas otsige PALG:

Installeerimisel IntelliJ näitab hoiatust (Third-Party Plugins Notice), mis tuleb aksepteerida. Pärast PALGi installeerimist sulgege korraks IntelliJ ja avage uuesti.

Edaspidi selleks, et logimine sujuks õigesti, sulgege enne ülesannetega alustamist IntelliJ ning käivitage uuesti. See tagab, et logisse ei jää üleliigset infot, kui IntelliJ on kauem avatud olnud.

Logifailide leidmine

Kui ülesanded on valmis

  • Tehke hiirega parem klõps IntelliJ avatud redaktoris ja valige PALG: Open Log Folder:
  • Avage kaust PALG.
  • Kaustas on logifailid TXT-failidena, mille nimes on logimissessiooni algusaeg. Sealt valige kõik logid, mille failinimi on seotud tehtud ülesannetega. (Kui vahepeal IntelliJ rohkem ei suletud, siis on neid faile vaid üks. Failinimes on kuupäev ja kellaaeg, millal ülesannetega alustasite, st IntelliJ avasite.)
  • Esitage failid Moodle'i kaudu.

Käsurea argumendid

Kui Java programm käivitada käsurealt, siis klassinime järel olevaid sõnesid loetakse käsurea argumentideks (command-line arguments, program arguments). Näiteks järgnevas näites on argumentideks "Aasta", "on" ja "2025".

java Peaklass Aasta on 2025 

Argumentide massiivile määratakse nimi peaklassi peameetodi päises (antud juhul args)

public static void main(String[] args) {

Järgnevas vaatleme, kuidas neid argumente saab määrata programmeerimiskeskkonnas IntelliJ. Enne argumentide määramist on mõistlik programm korra seadistamata käima panna (selle käigus määratakse käivitusseadetes (run configuration) peaklass). Seejärel valige Run-menüüst Edit Configurations. Õige koht on Program arguments.

Eclipse

Kui kasutame Eclipse-it, siis saame käsurea argumente anda valides Run-menüüst Run Configurations... --> (x)=Arguments ja sisestades argumendid kasti Program arguments.

Kasulike hoiatuste lisamine

Toortüübi (Raw type) hoiatus

Geneerilistel tüüpidel on tüübiparameetrid, mis märgitakse noolsulgude (< >) vahele. Kui tüüp on märkimata, siis Java kasutab tüübina java.lang.Object. See on peaaegu alati vale. Isegi kui tahetakse tüübina Object kasutada, oleks hea see eraldi välja kirjutada. Seadistage oma IDE hoiatusi näitama, kui geneeriline tüüp on jäänud määramata!

Avage File-menüüst Settings. Muutke Editor -> Inspections aknas Raw use of parametrized class jaoks severity väärtuseks Error. (Vt. pilt allpool.)

(inspection peab olema ka valitud)

Eclipse

Avag seaded ja lülitage sisse hoiatus (Window => Preferences => Java => Compiler => Errors/Warnings => Annotations => Usage of raw type). Kui määrate selleks seadeks Warning või Error, siis annab IDE märku, kui kusagil tüübid ära on jäänud. (Vt. pilt allpool.)

Annotatsiooni Override kontroll

Arenduskeskkonda on võimalik seadistada hoiatust näitama, kui kuskil on @Override annotatsioon puudu. Annotatsiooni lisamine on väga lihtne ja võib aidata säästa oluliselt aega vigade otsimisel.

Avage File-menüüst Settings. Muutke Editor -> Inspections aknas Missing @Override annotation jaoks severity väärtuseks Error.

(inspection peab olema ka valitud)

Eclipse

Avage seaded ja lülitage sisse hoiatus (Window => Preferences => Java => Compiler => Errors/Warnings => Annotations => Missing '@Override' annotation). Kui määrate selleks seadeks Warning või Error, siis annab IDE märku, kui kusagil annotatsioon on ära unustatud.

Kodeering

IntelliJ tekitabki Java failid vaikimisi UTF-8 kodeeringus.

Probleemiks on Windowsi Eclipse, mis kasutab vaikimisi süsteemi kodeeringut (mis võib eri arvutites olla erinev).

Eclipse

Õige kodeeringu fikseerimiseks tuleks Eclipse'is nüüd ja edaspidi uue projekti loomisel enne koodi kirjutamist teha projekti nimel paremklõps, valida Properties => Resource ning määrata Text file encoding seade väärtuseks UTF-8. (Kui projektis on juba täpitähtedega faile, siis tuleks need üle vaadata ja kodeeringu muutmisest tekkinud krõnksud ära parandada.)

Kuna projekti kodeeringu määramine võib mõnikord ära ununeda, siis lisaks (või selle asemel) on soovitatav määrata ka Eclipse'i töökataloogis (workspace) vaikekodeering (Window => Preferences => General => Workspace). Paraku võib selle tulemusena saada palju krõnkse juba varem loodud Java failidesse. Lahendus on fikseerida enne töökataloogi seade muutmist olemasolevate projektide kodeeringud nii nagu nad vaikimisi on (nt. Cp1257). Töökataloogi seade rakendub vaid neile projektidele, millel pole kodeeringut fikseeritud.

IntelliJ

IntelliJ näitab avatud faili kodeeringut all paremal nurgas. Seal peaks olema Java failide puhul UTF-8. Kodeeringu nimele klõpsates saab avatud faili kodeeringut muuta. Vaikimisi kodeeringu muutmiseks võtke File-menüüst Settings. Valige Editor -> File Encodings ja muutke kõik UTF-8 peale.

  • 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