20. Javan omat luokat.

Slides:



Advertisements
Samankaltaiset esitykset
18. Abstraktit tietotyypit
Advertisements

15. Loogiset operaatiot.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
16. Javan omat luokat.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Taulukot Jukka Juslin © Jukka Juslin 2006.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
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.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
© 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.
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
13. Hyvä ohjelmointitapa (osa 1)
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin.
7. Oliot ja viitteet.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
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.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia.
Kuinka niitä käsitellään
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
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.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
22. Taulukot.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
2. Lisää Java-ohjelmoinnin alkeita
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.
15. Ohjelmoinnin tekniikkaa
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
16. Javan omat luokat Sisällys Johdanto. Object -luokka: − toString -, equals -, clone - ja getClass -metodit. Comparable -rajapinta: − compareTo.
String-vertailusta ja Scannerin käytöstä (1/2)
1. Omat operaatiot.
7. Oliot ja viitteet.
13. Pakkaukset.
2. Taulukot.
17. Javan omat luokat.
7. Hyvä ohjelmointitapa..
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
7. Näytölle tulostaminen
2. Taulukot.
6. Metodit.
7. Oliot ja viitteet.
13. Pakkaukset.
16. Javan omat luokat.
7. Hyvä ohjelmointitapa..
7. Näytölle tulostaminen
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

20. Javan omat luokat

Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat.

Java API Java-kielen Application Programming Interface (API) on kokoelma Javan omia luokkia, joista osa on valmiiksi ohjelmoitu ja osa määrittelee rajapintoja. Javan versiokohtainen API-dokumentaatio on luettavissa Internetissä. Esimerkiksi version 1.7 dokumentit löytyvät osoitteesta: http://docs.oracle.com/javase/7/docs/api/index.html Linkki kurssin verkkosivuilla.

Pakkaukset API on jaettu pienempiin kokonaisuuksiin eli pakkauksiin (package), koska Javan omia luokkia on satoja. java.lang-pakkauksen luokkia (esimerkiksi String ja Math) voidaan käyttää suoraan ilman eri pyyntöä. Pakkaukset sijaitsevat nimeään vastaavissa alihakemistoissa: esimerkiksi java.lang-paketin luokat ovat Java-ympäristön alihakemistossa java\lang

Pakkaukset Nyt riittää tietää kuinka pakkauksen luokat saadaan käyttöön - pakkauksia ei tarvitse osata tehdä itse. Pakkauksen luokat tuodaan ohjelman käyttöön import-lauseella, jolla voidaan sisällyttää useampia pakkauksia. import-lauseet tiedoston alkuun ennen luokkaa. // Esim. Käyttöön java.util-pakkauksen kaikki luokat. import java.util.*; public class PakettiTesti { … }

String-luokka Vaikka merkkijonot ovat String-luokan olioita, tämän tyyppiset tunnukset voidaan esitellä, ja niihin voidaan myös sijoittaa, alkeistyyppien tapaan. Esim. String tervTre = "Moro!"; String tervKuo = new String("Päevee!"); Merkkijonoliteraalit merkitään lainausmerkeillä. Pienet ja isot kirjaimet ovat eri asia. +-operaatiolla merkkijonoihin voidaan yhdistää alkeistyyppisiä arvoja ja merkkijonoja.

String-luokka Luokan palvelut saatavilla ilman import-lausetta. Koska String-luokan metodit eivät kuulu omaan ohjelmaan (luokkaan), metodeja kutsutaan pistenotaatiolla joko olion tai luokan nimen kautta. Esim. String mjono = "ABC - kissa kävelee."; int mjonoPit = mjono.length(); // 20 String mjono = String.format("%.2f", osamaara);

String-luokka Merkkeihin viitataan nollasta alkavalla indeksillä. Ensimmäinen kirjain on kohdassa 0, toinen kohdassa 1 ja viimeinen kohdassa n – 1, missä n on jonon pituus. Indeksiarvoja annetaan monien String-luokan metodien parametreiksi. Huom! Yksiulotteiset taulukot ovat eri asia kuin merkkijonot! Indeksi 1 2 3 Merkki J a v

Joitakin String-luokan metodeja int length()-metodi palauttaa merkkijonon pituuden. Esim. String mjono = "Java"; int l = mjono.length(); // 4 Tietty merkkijonon kirjain voidaan lukea char charAt(int i)-metodilla, missä parametri i on indeksi ja operaation tuloksen tyyppi char. Esim. char toinenMerkki = mjono.charAt(1); // ′a′

Joitakin String-luokan metodeja int indexOf(int c)-metodi palauttaa merkin c ensimmäisen paikan merkkijonossa. Mikäli merkkijono ei sisällä merkkiä, palautetaan -1. Esim. String mjono = "Java"; int i = mjono.indexOf('a'); // 1 int j = mjono.indexOf('q'); // -1

Joitakin String-luokan metodeja boolean equals(String s)-metodi tutkii ovatko merkkijonojen merkit samat. Yhtä- ja erisuuruusoperaatiot (==, !=) eivät sovellu merkkijonomuuttujien vertailuun. Esim. String mjono1 = new String("Java"); String mjono2 = new String("Java"); // true boolean samat1 = mjono1.equals(mjono2); // false boolean samat2 = mjono1 == mjono2;

Joitakin String-luokan metodeja valueOf(int c)-metodi muuntaa alkeistyyppisen parametrinsa merkkijonoksi. Metodi on kuormitettu: parametri voi olla esimerkiksi int- tai double-tyyppinen. Esim. String klmjono = String.valueOf(123); String llmjono = String.valueOf(1.23); String-tyyppistä merkkijonoa ei voi muuttaa. Ei metodia esimerkiksi yksittäisen merkin muuttamiseen. StringBuffer- ja StringBuilder-tyyppiset jonot muuttuvat.

String-luokka public class VaihdaKirjain { public static void main(String[] args) { String sana = "Saari"; // Muutettava merkkijono. char vanhaMerkki = 'a'; // Vanha merkki. char uusiMerkki = 'i'; // Uusi merkki. String apu = ""; // Väliaikainen muuttuja. for (int i = 0; i < sana.length(); i = i + 1) if (sana.charAt(i) == vanhaMerkki) // Löytyi vaihdettava merkki. apu = apu + uusiMerkki; else // Jokin muu merkki. apu = apu + sana.charAt(i); sana = apu; System.out.println(sana); }

Math-luokka Luokan rakentaja yksityinen  Luokasta ei voida luoda olioita. Vain luokkametodeja, joita kutsutaan luokan nimen kautta. Esim. // Satunnaisluku väliltä [0, 1[. double satluku = Math.random();

Joitakin Math-luokan metodeja abs-metodi palauttaa parametrinsa itseisarvon. Metodi kuormitettu siten, että parametri voi olla double-, float-, int- tai long-tyyppiä. Esim. double lluku = -1.23; lluku = Math.abs(lluku); // 1.23 int kluku = -10; System.out.println(Math.abs(kluku)); // 10

Joitakin Math-luokan metodeja min(a, b) Palauttaa pienemmän parametreistaan a ja b. max(a, b) Palauttaa suuremman parametreistaan a ja b. round(a) Pyöristää liukulukutyyppisen parametrinsa. Palauttaa pyöristetyn arvon. pow(a, b) Potenssiin korotus . Palauttaa tuloksen. sqrt(a) Neliöjuuren lasku . Palauttaa tuloksen.

Kääreluokat java.lang-pakkaus sisältää alkeistyyppejä vastaavat niin sanotut kääreluokat (wrapper class). Esim. double-tyyppiä vastaa Double-luokka. Rakentajille voidaan antaa parametriksi joko alkeistyypin arvo tai merkkijono. Esim. Double d = new Double(1.23); Java käärii alkeistyyppisiä arvoja myös automaattisesti. Esim. Double d = 1.23; Kääreluokkien valueOf-metodilla voidaan muuttaa merkkijono kääreluokan olioksi ja toString-metodilla olio merkkijonoksi. Esim. Integer luku = Integer.valueOf("10");