© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi HashMap, Properties, Logger, etc Tuloksellinen Java-ohjelmointi.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

© Jukka Juslin1 Ohjelmointitaito (ict1td002, 12 op) Opintojakson esittely Kevät 2008 Jukka Juslin, Raine Kauppinen Tuloksellinen Java-ohjelmointi.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI
6. Metodit.
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 12 Periytyminen.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot Jukka Juslin © Jukka Juslin 2006.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Käännösaikaiset virheilmoitukset • Tulee silloin, kun koodissa on jotain sellaista, joka ei ole Javan syntaksin mukaista • Esim. – Syntax error, insert.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Ehto- ja toistolauseet.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
Oliosuunnittelu.
© Jukka Harju, Jukka Juslin
Java-ohjelmoinnin perusteet kesä 2012 TERVETULOA! Opettaja Jukka Juslin.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
Kuinka niitä käsitellään
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
1 Tietovirrat ja niiden suunnat Tietovirralla on aina suunta Tiedostoon tallentaessa käytetään OutputStream-luokasta perittyjä luokkia Tiedostosta luettaessa.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
ict1td002 - Copyright Raine Kauppinen 1 Tietovirrat  Tietovirran käsite  Tietovirtojen käyttö  Tekstitiedoston luku  Tekstitiedoston kirjoitus.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely.
2. Lisää Java-ohjelmoinnin alkeita
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Tiedostojen käsittely
Tuloksellinen Java-ohjelmointi Luku 2 Ensimmäiset ohjelmat
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Sähköpostin lähetys Java- ohjelmasta Jukka Juslin.
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
5. Kapselointi.
6. Tiedostot.
Tuloksellinen Java-ohjelmointi
Kuinka niitä käsitellään
8. Näppäimistöltä lukeminen
Kuinka niitä käsitellään
6. Metodit.
3. Attribuutit.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi HashMap, Properties, Logger, etc Tuloksellinen Java-ohjelmointi

© Jukka Harju, Jukka Juslin2 Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä. Lisäys edelliseen lisenssiin: Kalvojen muokkaaminen on sallittu vain opettajille, joiden kursseilla käytetään kurssikirjana Tuloksellinen Java-ohjelmointi -kirjaa.Creative Commons Attribution-ShareAlike 1.0 -lisenssillä

© Jukka Harju, Jukka Juslin3 Sisältö HashMap-luokka Properties-tiedostot Logger in lähetys

© Jukka Harju, Jukka Juslin4 HashMap-luokka Kertaamme HashMap-luokan, sillä arvioitavassa tehtävässä saattaa olla siitä kysymys ja lisäksi se on seuraavaksi käsiteltävän Properties- tiedoston pohjana Katso oppikirjan sivuilta 160 ja 161 HashMapin käyttöesimerkki HashMapin idea on tallettaa avain->arvopareja, jolloin avain on esim. Kissan nimi ja arvo kissan paino – näinollen vältytään numeeriselta indeksiltä ja indeksi suoraan kertoo jo jotain

© Jukka Harju, Jukka Juslin5 Tiedostot ja properties-konfiguraatio Properties (tiedoston loppupääte.properties) tarkoittaa esim. konfiguraatiotietojen tallentamista tiedostoon Tallennusmuoto on seuraavanlaista (oppikirjan sivu 163): tmp = C:/TEMP server = norsu.firma.fi Tämänmuotoiset avain-arvoparit on kätevintä lukea HashMap (esim. PHP:ssä vain Hash) tietorakenteeseen ja siihen onkin Javassa valmis mekanismi Nimeä tiedostosi esimerkiksi asetukset.properties

© Jukka Harju, Jukka Juslin6 Properties alkuarvojen lukeminen Alkuarvojen lukeminen properties-tiedostosta menee seuraavaan tapaan (oppikirjan sivu 164): import java.util.Properties; import java.io.*; … // alkuarvojen lukeminen Properties alkuarvot = new Properties(); File propsiTiedosto = new File(”jukan.properties”); FileInputStream in = new FileInputStream(propsiTiedosto); alkuarvot.load(in); // alkuarvojen tulostaminen System.out.println(alkuarvot.get(”tmp”)); System.out.println(alkuarvot.get(”server”));

© Jukka Harju, Jukka Juslin7 Logger Logger tarkoittaa ns. lokittajaa eli kirjanpitoa (esim. merikapteenin tai lentokapteenin lokiin verrattavissa) siitä, mitä sovelluksessa on tapahtunut Loki on monessa suhteessa hyödyllinen: –Sattunut virhe ohjelmistossa voidaan paikantaa lokista –Loki on pysyvästi tallella –Lokissa on aikaleima, jolloin virhe on tapahtunut –Loki päivittyy dynaamisesti aina kun ohjelma on ajossa –Lokista voi seurata kuinka sovellusta käytetään

© Jukka Harju, Jukka Juslin8 Login käyttäminen Java-ohjelmasta Login käyttäminen on esimerkin avulla kerrottu kirjan sivuilla 74 ja 75 Loggeri-oliota ei tarvi instantioida kuin kerran ja se voi olla kaikille ohjelman olioille sama, näinollen tehdään attribuutti luokkaan, josta halutaan lokia tuottaa: –public static final Logger logger;

© Jukka Harju, Jukka Juslin9 Login käyttäminen Java-ohjelmasta Lokin alustamiseen tarvitaan staattinen alustuslohko: static { logger = Logger.getLogger(”log”); try { FileHandler logFileHandler = new FileHandler(”laskutus.log”, true); logger.addHandler(logFileHandler); } catch (IOException ex) { System.out.println( ”Lokikirjoitusta ei saatu käynnistettyä!”); }

© Jukka Harju, Jukka Juslin10 Login käyttäminen Java-ohjelmasta Itse lokin kirjoittaminen suoritetaan Java-ohjelmissa seuraavalla komennolla: logger.log(Level.INFO, ”Kirjoitettu tiedostoon: ” + tiedosto); Huomataan siis, että logittaminen overläppää jonkinverran sysoutprintln-debuggaamisen ja debuggerin kanssa. Lähinnä logittamalla on silti tarkoitus etsiä virheitä, ei jokakäänteessä tulostaa kaikkien näkyvyysalueella olevien muuttujien nimiä Lokitus voi heittää IOExceptionin ja se tulee metodeissa huomioida ja passata niiden käsittely staattiselle alustuslohkolle

© Jukka Harju, Jukka Juslin11 Java-ohjelmaan voi melko kätevästi integroida myös muita toiminnallisuuksia Viimeviikoilla tekemiimme Laskutus-ohjelmistoihin voisi esimerkiksi liittää toiminnon (feature), joka lähettäisi sähköpostia: helia.fi/~jusju/AH/src/liiketoiminta/ .javahttp://myy.haaga- helia.fi/~jusju/AH/src/liiketoiminta/ .java Kyseinen luokka vaatii toimiakseen projektin propertieseihin build pathiin lisättyna actiovation.jar ja mail.jar tiedostot Demo…