Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print()

Slides:



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

Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
Osion kaksi kertaus Jukka Juslin © Jukka Juslin.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
JavaScript (c) Irja & Reino Aarinen, 2007
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Java-perusteet Kari Kujansuu
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
22. Taulukot.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
16. Lohkot Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat.
© 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.
9. Periytyminen Javassa.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
7. Oliot ja viitteet.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
String-vertailusta ja Scannerin käytöstä (1/2)
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.
20. Javan omat luokat.
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.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
22. Taulukot.
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
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely.
2. Lisää Java-ohjelmoinnin alkeita
Vesa Ollikainen & Outi Grotenfelt
Tiedostojen käsittely
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
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.
15. Ohjelmoinnin tekniikkaa
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
String-vertailusta ja Scannerin käytöstä (1/2)
5. Kapselointi.
6. Tiedostot.
Kuinka niitä käsitellään
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
Kuinka niitä käsitellään
6. Metodit.
13. Pakkaukset.
3. Attribuutit.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print() tai System.out.println() tulostaa tekstiä näytölle •Kommentit muotoa /*...*/, // tai /**...*/

Javatyökalut •Vapaasti haettavissa osoitteesta •”javac”-työkalu kääntää ohjelman bytecode- muotoon (kääntäjä) •”java” suorittaa bytecode-muodossa olevan ohjelman (virtuaalikone)

Muuttujien perustyypit •Kuten ”C”-kielessä •Tyyppi ”boolean” lisätty •Tyyppi ”int” 4 tavua, ”C”-kielessä 2 tavua •Vastaavasti ”long int” on 8 tavua •Muita tyyppejä luokkien avulla

Ohjausrakenteet •Kuten ”C”-kielessä –if –while –for –do-while –switch

Tekstimuuttujat •Erityinen luokka/tyyppi nimeltään String •Ainoa operaatio mitä voi soveltaa on konkateeraus operaattorilla ”+” •String-muuttujan arvo voi muuttua, mutta ei itse teksti –”heippa ” + ”maailma” luo uuden kopion kummastakin tekstistä •Voi vaikuttaa oudolta, mutta on erittäin kätevää!

Taulukot •Olioita kuten melkein kaikki muukin Javassa •Taulukko-olion määrittely: int[] kokotaulu; •Luonti new-operaattorilla: int[] kokotaulu = new taulu[10];

Omien luokkien määrittely class OmaLuokka { // Jotakin koodia } •Käytettävä ”public”-määrettä mikäli halutaan käyttää muissa lähdetiedostoissa

Ilmentymämuuttujat ja -metodit •Ilmentymämuuttujat määritellään luokan sisällä, ei metodin sisällä •Ilmentymämetodit samoin •Avainsanaa ”static” ei käytetä ilmentymämuuttujille eikä –metodeille!

Avainsana ”this” •Metodin koodissa viittaa ”tähän” olioon, eli siihen olioon jolle metodia on kutsuttu •Esim: public class Joku { private int jokin; public void asetaJokin(int jokin) { this.jokin = jokin; }

Konstruktorimetodi •Alustaa uuden olion toivottuun tilaan •Samanniminen kuin luokka •Tulee yleisesti olla näkyvyyttä ”public”

Luokkamuuttujat ja -metodit •Määritellään aivan kuten ilmentymä-vastaaville, mutta lisäksi avainsana ”static” •Sekä ilmentymä- että luokkametodit voivat käyttää sekä luokkamuuttujia että –metodeita •Luokkametodit eivät voi suoraan käyttää ilmentymämuuttujia eikä kutsua suoraan ilmentymämetodeita •”this” avainsanaa ei voi käyttää luokkametodeissa

Periytyminen •Luokka voi olla toisen luokan aliluokka •Aliluokka perii yliluokan ominaisuudet, eli muuttujat ja metodit •Säästää koodia ja tekee ohjelmista vakaampia je helpommin ylläpidettäviä

”super” •Voidaan käyttää aliluokan metodeissa kun viitataan yliluokan ominaisuuteen tai metodiin •super() on yliluokan konstruktori •super.jokinMetodi() kutsuu yliluokan metodia jokinMetodi •super voi viitata yliluokan yliluokkaan tai siitä eteenpäin

Rajapintaluokat (interface) •Määrittelee uuden tyypin, mutta ei uutta luokkaa •Ei mahdollista luoda interface-olioita •Työkaluja ohjelmistojen määrittelyyn sekä ylläpidettävyyden helpottamiseen

Abstrakti luokka •Rajapintaluokan ja luokan välimuoto •Määrittelee mahdollisesti joitakin muuttujia ja/tai metodeja •Ei mahdollista luoda olioita abstrakteista luokistas •Käytetään silloin kun osa useamman luokan muuttujista/metodeista on yhteisiä, mutta kun nämä eivät ole hyödyllisiä yksistään

Sovelmat (applet) •Graafisia ohjelmia joita käytetään Internet- selaimissa •Luokan java.applet.Applet aliluokkia •public void paint(Graphics) -metodilla voi piirtää kuvia tai kuvioita •Voi myös käyttää muita yleisiä käyttölittymäelementtejä (nappuloita, listoja,...) •Rajatut oikeudet paikalliseen koneeseen ja verkkokytkentöihin

Piirtämistä •Luokka Graphics tarjoaa perusoperaatiot piirtämiselle –viivat: drawLine(...) –neliskulmiot: drawRect(...), fillRect(...) –ovaalit: drawOval(...), fillOval(...) –teksti: drawString(...) –j.n.e.

Ohjelmat graafisilla käyttöliittymillä •Frame-luokka vastaa ohjelmaikkunaa •Minimaalinen graafinen käyttöliittymä: public class FrameTest { public static void main(String[] args) { Frame f = new Frame(); f.setSize(100, 100); f.show(); }

Ikkunalayoutit •FlowLayout : asettaa komponentit peräkkäin, ei muuta niiden kokoa •GridLayout : asettaa komponentit taulukkoon, kaikkien komponenttien koko sama •BorderLayout : komponentit viidellä alueella - keskellä tai sivuilla, muuttaa komponenttien kokoa •Muita: CardLayout, GridBagLayout •Voidaan yhdistää käyttäen alipaneeleja (luokkaa Panel )

Reagoiminen käyttäjän toimiin •Nappuloiden painamiset, hiiren siirrot, ikkunoiden siirrot ja koon muutokset,... •Listener -rajapintaluokkien avulla •Komponentteja ”kuunnellaan” kutsumalla komponentin addXxxxListener - metodia •Kuuntelijan on toteutettava rajapintaluokan määrittelemät metodit

Pakkaukset •Ryhmittelevät luokkia yhteen loogisina kokonaisuuksina •Esim. java.awt-paketti sisältää Javan perusluokat graafisille käyttöliittymille •Paketti otetaan käyttöön avainsanalla ”import” •Luokka pakettiin avainsanalla ”package” tiedoston ensimmäisellä rivillä •Pakkaukset välttävät nimikonflikteja

Näkyvyysalueet •Muuttujat ja metodit: –private: vain luokan sisällä –protected: vain luokassa ja aliluokissa sekä kaikissa saman paketin luokissa –public: näkyy kaikille –ei määrettä: näkyy saman paketin luokissa •Luokat: –private: vain saman tiedoston sisällä –public: näkyy kaikille

Poikkeukset •Tapa käsitellä virhetilanteita •”throw”: heitetään poikkeus virheen sattuessa •”try-catch”: varaudutaan nappaamaan poikkeus kiinni ja mahdollisesti käsittelemään se •Poikkeus jota ei käsitellä missään johtaa ohjelman keskeyttämiseen •Luokan ”RuntimeException” tai aliluokkien poikkeuksia ei ole pakko ottaa etukäteen huomioon

Tekstitiedostojen luku ja kirjoittaminen •Lukemista varten luodaan olio: BufferedReader infile = new BufferedReader( new InputStreamReader( new FileInputStream(”tiedosto.txt”))); •Kirjoittamista varten vastaavasti: PrintWriter outfile = new PrintWriter( new FileOutputStream(”tiedosto.txt”)); •Poikkeukset otettava huomioon •Luku-ja kirjoitusluokat ketjutetaan halutun toiminnon aikaansaamiseksi