Pakkauksen kokoaminen

Samankaltaiset tiedostot
Pakkauksen kokoaminen

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1

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

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

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

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

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

17. Javan omat luokat 17.1

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

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

20. Javan omat luokat 20.1

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

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

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

5. HelloWorld-ohjelma 5.1

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

17. Javan omat luokat 17.1

5. HelloWorld-ohjelma 5.1

16. Javan omat luokat 16.1

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

Sisällys. 15. Lohkot. Lohkot. Lohkot

1. Omat operaatiot 1.1

Metodien tekeminen Javalla

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

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

14. Poikkeukset 14.1

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

Rajapinta (interface)

Ohjelmointi 2 / 2010 Välikoe / 26.3

4. Olio-ohjelmoinista lyhyesti 4.1

19. Olio-ohjelmointia Javalla 19.1

Hakemistojen sisällöt säilötään linkitetyille listalle.

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

Java-kielen perusteet

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

Olio-ohjelmointi Javalla

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

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

Luokat ja oliot. Ville Sundberg

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

1 Tehtävän kuvaus ja analysointi

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

Sisällys. 16. Lohkot. Lohkot. Lohkot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

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

11. Javan valintarakenteet 11.1

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

Java-kielen perusteita

Taulukoiden käsittely Javalla

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Mikä yhteyssuhde on?

2. Olio-ohjelmoinista lyhyesti 2.1

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

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

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

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

11. Javan toistorakenteet 11.1

Ohjelmoinnin jatkokurssi, kurssikoe

JUnit ja EasyMock (TilaustenKäsittely)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Listarakenne (ArrayList-luokka)

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

18. Abstraktit tietotyypit 18.1

Oliot viestivät metodeja kutsuen

815338A Ohjelmointikielten periaatteet

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

15. Ohjelmoinnin tekniikkaa 15.1

12. Javan toistorakenteet 12.1

public static void main (String [] args)

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Java-kielen perusteita

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

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

Javan perusteita. Janne Käki

7. Oliot ja viitteet 7.1

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

7. Näytölle tulostaminen 7.1

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

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

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Tietokannat II -kurssin harjoitustyö

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

Transkriptio:

13. Pakkaukset 13.1

Sisällys Pakkauksen kokoaminen package-määrettä käyttäen. Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa importlauseen avulla. Pakkaukset ja näkyvyys. 13.2

Pakkauksen kokoaminen Luokka tai rajapinta liitetään pakkaukseensa varatulla sanalla package. Yleisesti: package pakkaus; Pakkausmäärittely on lähdekooditiedoston ensimmäinen lause. Vain kommentit voivat edeltää package-lausetta. Pakkausten nimissä käytetään vain pieniä kirjaimia. Lähdekooditiedostossa voi olla vain yksi package-lause. Liitetään In-luokka oopepakkaukseen. package oope; import java.util.*; // Scanner /* * Scanner-luokan palveluita * hyödyntävä apuluokka... */ final public class In {... 13.3

Pakkauksen kokoaminen Pakkaukselle voidaan määritellä pistenotaatiolla alipakkauksia. Luentoihin, harjoituksiin ja harjoitustyöhön liittyvät lähdekooditiedostot voitaisiin liittää oope-pakkauksen alipakkauksiin lauseita: package oope.luennot; package oope.harjoitukset; package oope.harjoitustyo; asianomaisissa lähdekooditiedostoissa käyttäen. Jokaiselle alipakkaukselle voidaan määritellä alipakkauksia. Pakkaukset pystytään nimeämään yksikäsitteisesti Internetnimiavaruuden avulla. Pakkauksen nimen alku esimerkiksi tekijän sähköpostiosoite käänteisessä järjestyksessä. Esimerkiksi: fi.uta.csjola 13.4

Pakkaus ja hakemisto Pakkaukset jakavat nimiavaruutta puumaisesti: luennot luento01 oope harjoitukset... csjola... laki... harjoitustyo Pakkaus järjestetään massamuistissa hakemistorakenteeksi siten, että kansiot nimetään pakkausten mukaan ja kuhunkin kansioon sijoitetaan vastaavan pakkauksen tiedostot. Oletetaan, että nykyinen hakemisto on Windows-käyttöjärjestelmässä C:\... \fi\uta\csjola. Tällöin esimerkiksi oope- ja oope.luennot-pakkausten tiedostojen tulee olla hakemistossa: C:\... \fi\uta\csjola\oope ja C:\... \fi\uta\csjola\oope\luennot. 13.5

Pakkaus ja hakemisto Ohjelmoijan on huolehdittava itse siitä, että lähde- ja tavukooditiedostot ovat oikeassa hakemistossa. Lauseella package fi.uta.csjola.oope; - lauseella alkavat lähdekooditiedostot (ja vastaavat tavukooditiedostot) tulee sijoittaa alihakemistoon fi\uta\csjola\oope. Pakkauksiin jaetun ohjelman käynnistämiseksi on siirryttävä oikeaan hakemistoon tai määriteltävä Java-tulkin classpath-komentoriviparametrin avulla oikea hakemisto. Java löytää omassa hakupolussaan olevat pakkaukset automaattisesti. Kansion pakkausmääreettömät tiedostot kuuluvat automaattisesti (ilman package-määrettä) samaan pakkaukseen. 13.6

Pakkauksen käyttöönotto Pakkaukseen sijoitetut luokat (tai rajapinnat) voidaan ottaa käyttöön toisessa pakkauksessa suoraan kirjoittamalla luokan (tai rajapinnan) nimen alkuun pakkauksen nimi. Näin viittaamalla voidaan välttää nimikonfliktit (eri pakkauksissa samanniminen luokka). Otetaan käyttöön esimerkiksi LinkitettyLista-luokka fi.uta.csjola.oope-pakkauksesta: fi.uta.csjola.oope.linkitettylista lista = new fi.uta.csjola.oope.linkitettylista(); Pakkauksen nimeä käyttämällä lauseita tulee pitkiä. 13.7

Pakkauksen käyttöönotto Toinen tapa käyttää pakkauksen sisältöä on määritellä tarvittavat luokat tai rajapinnat import-lauseilla, jolloin pakkauksen luokkia ja rajapintoja voidaan käyttää tavalliseen tapaan ilman pakkauksen nimeä. Yleisesti: // Tietty pakkauksen luokka käyttöön. import pakkaus.luokannimi; // Pakkaus käyttöön kokonaisuudessaan. import pakkauksennimi.*; 13.8

Pakkauksen käyttöönotto Import-lause sijoitetaan mahdollisen package-lauseen jälkeen ja ennen class- ja interface-lauseita. Import-lauseita voi olla useampia. Käytännössä kannattaa käyttää import-lauseita, koska niiden avulla ohjelmointi on helpompaa ja nopeampaa. package kissankoti; // Otetaan käyttöön elaimet- // pakkauksesta Kissa-luokka // esi-isineen. import elaimet.*; // Huonekaluista käyttöön Sohva. import huonekalut.sohva; public class Olohuone {... // Käytetään Kissa-luokkaa // tuttuun tapaan. Kissa harmi = new Kissa();... 13.9

Esimerkki nykyhakemisto Testi.java eka A.java toka B.java nykyhakemisto eka A toka Testi B 13.10

Esimerkki (eka\a.java ja toka\b.java) package eka; public class A { public void sanoa() { System.out.println("Aaa..."); package toka; // Otetaan käyttöön A-luokka. import eka.*; public class B { public void sanob() { A o = new A(); System.out.println("Bee..."); Yksittäisen luokan kääntäminen on helpointa nykyhakemistosta: javac eka\a.java tai javac toka\b.java 13.11

Esimerkki (Testi.java) // Otetaan käyttöön A-luokka. import eka.*; public class Testi { public static void main(string[] args) { // Import-lauseen avulla luokkia voidaan käyttää tutulla tavalla. A a = new A(); // Lauseet ovat pakkauksen nimeä käyttäen pitempiä. toka.b b = new toka.b(); Kääntäminen nykyhakemistossa: javac Testi.java Suoritus nykyhakemistossa: java Testi 13.12

Pakkaukset ja näkyvyys Pakkaukset rajoittavat luokkien ja niiden piirteiden näkyvyyttä muiden pakkausten luokkiin. Ilman näkyvyysmääreitä (niin sanottu friendly-määre) luokka ja sen piirteet eivät näy muihin kuin luokan oman pakkauksen luokkiin. Public-määreellä esitellyn luokan public- ja protectedmääritellyt piirteet ovat käytettävissä muissa pakkauksista. Public-määreellä esitellyt piirteet näkyvät kaikissa muissa luokissa pakkauksesta riippumatta. 13.13

Pakkaukset ja näkyvyys Protected-määreellä esitellyt piirteet näkyvät samassa pakkauksessa oleville luokille sekä luokan jälkeläisille niiden pakkauksesta riippumatta. Käytä pakkauksia ja protected-määrettä, jos julkisten aksessorien käyttö ei ole järkevää. Pakkaa luokkahierarkia siten, että pakkauksessa on vain hierarkiaan kuuluvia luokkia, koska ei ole toivottavaa, että hierarkiaan kuulumattomat luokat voivat käsitellä suoraan hierarkian luokkien piirteitä. 13.14

Pakkaukset ja näkyvyys public class A { // private s, protected t, public u... Pakkaus 1 Pakkaus 2 A - s, # t, + u C I B H Luokissa B ja H näkyvät luokan A piirteistä t ja u. Luokassa C näkyvät luokan A piirteistä t ja u. Luokassa I näkyy luokan A piirteistä vain u. 13.15