Java – Klasside omavahelised seosed (Ülesanne 9)

Selles peatükis õpime, kuidas siduda omavahel erinevad Java klassid. Kuna plaanis on kasutada kuupäevasid, siis tekitame neile ka mõned peatükid.

Kuupäeva loomine ja vormindamine

Hetkel kuupäeva ja kellaaja loomiseks kasutame Date klassi. Väljundina kuvatakse siis vaikimisi pikk väljund (EEST – Eastern European Summer Time).

Kuupäeva või kellaaja enda jaoks sobivaks vormindamiseks kasutame lisaks SimpleDateFormat klassi.

Nagu näed, kasutasin vormindamiseks kindlaid tähti. Pane tähele, et suurtel ja väikestel tähtedel on ka erinev tähendus.

Teksti teisendamine kuupäevaks

Lisan siia ka koodinäite, kui on vaja näiteks kasutaja sisestatud tekstist aru saada ja kellaajaks teisendada.  Teksti teisendamiseks on vaja kasutada try... catch blokki.

Tehted kuupäevadega

Javas on võimalik kuupäevade ja kellaaegadega mängimiseks kindlasti üle kümne erineva klassi. Kuupäevadega arvutamiseks olen valinud LocalDate klassi. Sarnaselt töötab ajaga töötamiseks LocalTime või mõlemad kombineeritult LocalDateTime klass.

Kuupäevade loomiseks kasutame kahte meetodit:

  • now() – loob hetkekuupäeva
  • of() – saad defineerida ise kuupäeva (aasta,kuu,päev)

Kuupäevast info kättesaamiseks, kasutame meetodeid eesliidesega get:

  • getYear()
  • getMonth()
  • getDayOfMonth()
  • getDayOfWeek()
  • getDayOfYear()

Ja kui vaja arvutada, siis

  • plusDays()
  • plusWeeks()
  • plusMonths()
  • plusYears()
  • minusDays()
  • minusWeeks()
  • minusMonths()
  • minusYears()

Panen siinkohal kuupäevade teema lukku. Aga lisan vihjena, et kui vaja kuupäeva või aegade vahe leida, siis piilu Period ja Duration klasse.

Klasside omavahelised suhted

Eraldi klassidest objektide loomine ei tohiks enam probleem olla. Selles peatükis aga tekitame klassi, mis suudab suhelda teiste klassidega. Mõte siis selline, et meil on bussireisi firma ja on olemas kolm lihtsat klassi:

Neid kõiki kolm klassi aga ühendame kokku Pilet.java klassis. Nimelt kui loome pileti, siis ühendatakse need kolme klassi objektid ning lisame loomise kuupäeva. Selguse huvides lisan ka skeemi.

Loome paketi

Rakenduse loomiseks tekitame uue paketi (package) nimega bussireisid. Pakett võimaldab klasse grupeerida ja määrata nähtavuspiirkonda. Uue paketi loomiseks vali menüüst (või parem klikk projekti nimetusel) New>Package.

Avanenud aknas veendu, et pakett suunatakse õigesse kataloogi ning lisa nimi.

Nüüd peaksid nägema tühja paketti, kuhu hakkad looma oma klasse.

Iga sellesse paketti kuuluv klass peab sisaldama paketinime package bussireisid;

Get ja Set meetodid

Sa saad Reisija.java, Liin.java ja Istekoht.java klassid allalaadida ja kopeerida. Kuid tahan näidata kiiret võimalust kuidas luua vajalikud meetodid klassi muutujate jaoks. Võtame näiteks Reisija.java klassi:

  • loome muutuja nime hoidmiseks ja määrame selle private, mis tähendab, et ligipääsetav ainult klassi siseselt
  • tekitame kaks konstruktorit

Tihti on meil vaja luua meetodit muutuja muutmiseks ja lugemiseks ja siinkohal annabki Eclipse IDE meile hea võimaluse. Vali menüüst Source>Generate Getters and Setters

Seejärel vali millisele muutujale soovid meetodeid saada ja vajuta OK.

Ja see hoiab kõvasti aega kokku:

Pilet.java klassi loomine

Nüüd oleme valmis looma klassi, mis kasutab teiste klasside objekte. Seose loomine on tegelikult lihtne – koht kus sa lood isendimuutujaid, tuleb väärtuseks määrata lihtsalt vastavad objektid.

Algusesse lisasin kohe muutuja kuupäeva hoidmiseks, kus kasutame LocalDate klassi. Seega saame luua konstruktori, mis sellele hetke kuupäeva salvestaks.

Loome isendimuutujatele ka meetodid Source>Generate Getters and Setters

Pileti objekti loomine

Tekitame endale pileti ja vaatame, kas saame asja tööle. Loome klassi App.java kuhu lisame peameetodi main.

Loome objektid nagu ikka. Meetodite abil ühendame need kokku. Ehk meie Pilet klass eeldab objekte ja seda me teemegi – lisame loodud Pileti objektile p1 Reisija, Liini ja Istekoha. Ja kui nüüd soovime näiteks kasutaja nime poole pöörduda, siis kasutame pileti meetodit getReisija(). Kuna see meetod väljastab meile reisija kui objekti, siis tuleb seal kasutada reisija meetodeid.

Ülesanne 9

Koosta programm tsikli treeningute haldamiseks.

  • loo eraldi klassid tsiklite, sõitjate ja treeningradade jaoks
  • igale klassile loo oma äranägemise järgi vajalikud muutujad, konstruktorid ja meetodid.
  • kasuta vähemalt ühte ajaga seotud muutujat
  • loo klass, mis kõik üheks tervikuks ühendab ja loo kaks töötavat objekti näidet
  • lisa kommentaarid ja salvesta

Attachments1

SEE ALLAdd a note
YOU
Add your Comment

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Kontakt: kliki siia

Hetkel õpivad:

There are no users currently online

Kontrolli tunnistust

Tööribale