Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Samankaltaiset tiedostot
20. Javan omat luokat 20.1

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1

16. Javan omat luokat 16.1

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Metodien tekeminen Javalla

Java-kielen perusteet

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

7/20: Paketti kasassa ensimmäistä kertaa

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

7. Näytölle tulostaminen 7.1

Java-kielen perusteet

4. Luokan testaus ja käyttö olion kautta 4.1

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Pakkauksen kokoaminen

7. Oliot ja viitteet 7.1

Sisältö. 22. Taulukot. Yleistä. Yleistä

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Sisältö. 2. Taulukot. Yleistä. Yleistä

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

8. Näppäimistöltä lukeminen 8.1

Olio-ohjelmointi Javalla

Java-kielen perusteita

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Pakkauksen kokoaminen

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Mikä yhteyssuhde on?

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Java kahdessa tunnissa. Jyry Suvilehto

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

8. Näppäimistöltä lukeminen 8.1

1. Omat operaatiot 1.1

Java-kielen perusteet

Taulukot. Jukka Harju, Jukka Juslin

Listarakenne (ArrayList-luokka)

9. Periytyminen Javassa 9.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

14. Poikkeukset 14.1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

9. Periytyminen Javassa 9.1

12. Näppäimistöltä lukeminen 12.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

15. Ohjelmoinnin tekniikkaa 15.1

1 Tehtävän kuvaus ja analysointi

Java-API, rajapinnat, poikkeukset, UML,...

Ohjelmointi 2 / 2010 Välikoe / 26.3

Metodien tekeminen Javalla

Luokkakirjastot. esiintymämetodien käytöstä:

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

11. Javan valintarakenteet 11.1

Merkkijonon tutkiminen matches-metodilla

Ohjelmointi 1 Taulukot ja merkkijonot

14. Poikkeukset 14.1

19. Olio-ohjelmointia Javalla 19.1

18. Abstraktit tietotyypit 18.1

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

12. Monimuotoisuus 12.1

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko

Rajapinta (interface)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Harjoitus 4 (viikko 47)

Luokan sisällä on lista

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Java-kielen perusteita

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Osio2: Taulukot Jukka Juslin

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

812341A Olio-ohjelmointi, Peruskäsitteet, jatkoa

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Oliot viestivät metodeja kutsuen

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmointi 2, välikoe

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

13. Loogiset operaatiot 13.1

Periytyminen (inheritance)

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Taulukoiden käsittely Javalla

ITKP102 Ohjelmointi 1 (6 op)

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Transkriptio:

Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 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 20.3 20.4

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 { } Vaikka merkkijonot ovat String-luokan olioita, tämän tyyppiset tunnukset voidaan esitellä, ja niihin voidaan myös sijoittaa, alkeistyyppien tapaan. 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. 20.5 20.6 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. String mjono = "ABC - kissa kävelee."; int mjonopit = mjono.length(); // 20 String mjono = String.format("%.2f", osamaara); 20.7 Merkkeihin viitataan nollasta alkavalla indeksillä. Ensimmäinen kirjain on kohdassa 0, toinen kohdassa 1 ja viimeinen kohdassa n 1, missä n on jonon pituus. Indeksi 0 1 2 3 Merkki J a v a Indeksiarvoja annetaan monien String-luokan metodien parametreiksi. Huom! Yksiulotteiset taulukot ovat eri asia kuin merkkijonot! 20.8

int length()-metodi palauttaa merkkijonon pituuden. 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. char toinenmerkki = mjono.charat(1); // a int indexof(int c)-metodi palauttaa merkin c ensimmäisen paikan merkkijonossa. Mikäli merkkijono ei sisällä merkkiä, palautetaan -1. String mjono = "Java"; int i = mjono.indexof('a'); // 1 int j = mjono.indexof('q'); // -1 20.9 20.10 boolean equals(string s)-metodi tutkii ovatko merkkijonojen merkit samat. Yhtä- ja erisuuruusoperaatiot (==,!=) eivät sovellu merkkijonomuuttujien vertailuun. String mjono1 = new String("Java"); String mjono2 = new String("Java"); // true boolean samat1 = mjono1.equals(mjono2); // false boolean samat2 = mjono1 == mjono2; 20.11 valueof(int c)-metodi muuntaa alkeistyyppisen parametrinsa merkkijonoksi. Metodi on kuormitettu: parametri voi olla esimerkiksi int- tai double-tyyppinen. 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. 20.12

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. // Satunnaisluku väliltä [0, 1[. double satluku = Math.random(); 20.13 20.14 Joitakin Math-luokan metodeja abs-metodi palauttaa parametrinsa itseisarvon. Metodi kuormitettu siten, että parametri voi olla double-, float-, int- tai long-tyyppiä. 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) pow(a, b) sqrt(a) Pyöristää liukulukutyyppisen parametrinsa. Palauttaa pyöristetyn arvon. b Potenssiin korotus a. Palauttaa tuloksen. Neliöjuuren lasku a. Palauttaa tuloksen. 20.15 20.16

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"); 20.17