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



Samankaltaiset tiedostot
Mikä yhteyssuhde on?

Olio-ohjelmointi Javalla

Luokan sisällä on lista

Vahva koostumussuhde (Composition)

YHTEYSSUHDE (assosiation)

Periytyminen (inheritance)

Metodien tekeminen Javalla

public static void main (String [] args)

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

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

Listarakenne (ArrayList-luokka)

TyontekijaOhjelma. +main() (käyttää) + = public - = private

UML ja luokkien väliset suhteet

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

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

Rajapinta (interface)

Metodien tekeminen Javalla

Luokat ja oliot. Ville Sundberg

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

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

1 Tehtävän kuvaus ja analysointi

Oliot viestivät metodeja kutsuen

Lista luokan sisällä

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

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

7. Oliot ja viitteet 7.1

Javan perusteita. Janne Käki

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

Luokan muodostimet (Constructors)

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

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

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

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

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

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

Ohjelmointi 2, välikoe

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

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

Ohjelmoinnin jatkokurssi, kurssikoe

19. Olio-ohjelmointia Javalla 19.1

2. Olio-ohjelmoinista lyhyesti 2.1

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

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 )

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

16. Javan omat luokat 16.1

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

Tietokannat II -kurssin harjoitustyö

Poikkeustenkäsittely

Taulukoiden käsittely Javalla

KOHDELUOKAN MÄÄRITTELY

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Olioiden yhteistoiminta

812347A Olio-ohjelmointi, X Reflektiivisyys

Ohjelmistotekniikan menetelmät, koe

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

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

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

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

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

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

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

20. Javan omat luokat 20.1

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

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

Taulukot. Jukka Harju, Jukka Juslin

9. Periytyminen Javassa 9.1

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

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

14. Poikkeukset 14.1

Rinnakkaisohjelmointi, Syksy 2006

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

Interaktiivinen tarinankerronta

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

Java kahdessa tunnissa. Jyry Suvilehto

Oliosuunnittelu ja luokkakohtaiset komponentit

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

Java-kielen perusteet

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

4. Olio-ohjelmoinista lyhyesti 4.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

1. Mitä tehdään ensiksi?

Ohjelmoinnin perusteet, kurssikoe

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:

9. Periytyminen Javassa 9.1

1. Omat operaatiot 1.1

Ohjelmointityö 3. Mikko Laamanen

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

1. Olio-ohjelmointi 1.1

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

TIETORAKENTEET JA ALGORITMIT

Ehto- ja toistolauseet

ict02d Osio2- luento 3 Olio-ohjelmointi: Luokkien kirjoittaminen

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Transkriptio:

1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja - : String - : String Kompositio Kompositiolla (vahvalla koostumissuhteella) tarkoitetaan sitä, että toisen luokan olion elinikä ja omistajuus on toisen luokan oliolla. Pääluokan (Tili-luokan) olio siis luo toisen luokan (Kayttorajaluokan) olion. 2

2 Pääluokan (Tili-luokan) olio luo toisen luokan (Kayttoraja-luokan) olion. Tarkoituksena on kertoa tilin rajoituksia Kun luokasta (Tili-luokasta) tehdään olio samalla tehdään myös toisen luokan (Kayttoraja-luokan) olio. Kompositio olio tuhoutuu pääluokan olion mukana. 3 Esimerkiksi Tili-luokan sisällä on Kayttoraja-luokan olio Tili-luokan konstruktori luo itselleen Kayttoraja-luokan olion Tili-luokan set-metodilla muutetaan a Tili-luokan get-metodilla palautetaan kopio sta Tili-luokasta Kayttoraja-luokan oliota käytetään Kayttorajaluokan metodeilla Kun Tili-luokan olio tuhotaan, samalla tuhoutuu myös Tililuokan sisässä oleva Kayttoraja-luokan olio 4

3 Kompositio Olio koostuu toisesta oliosta Olio luo toisen olion Konstruktori luo molemmat oliot tili Kompositio vs. yhteyssuhde Yhteyssuhde Oliolla on suhde toiseen olioon Molemmat oliot syntyvät itsenäisesti molemmat oliot luodaan erikseen tehdään yhteys Henkilo hlo = new Henkilo(); tili.setomistaja(henkilo); tili omistaja hlo hetu nimi 5 Kompositio Javalla private String ; Tili-luokassa on Kayttoraja-luokka private double ; private Kayttoraja ; Tili-luokan olio Fi65123 4 200.0 public class Kayttoraja { private double, ; Tili-luokan oliossa on siis viite Kayttoraja-luokan olioon public Kayttoraja () { = ; = ; public Kayttoraja (double, double ) { this. = ; this. = ;

4 Konstruktorit private Kayttoraja ; public Tili() { = new Kayttoraja(); Kayttoraja-luokan olio luodaan Kayttoraja-luokan parametrittomalla konstruktorilla, koska Tili-luokan konstruktorin parametrina ei ole Kayttoraja-luokan oliota. public Tili(String, double ) { = new Kayttoraja(); // Seuraavalla sivulla parametrillinen konstruktori Kummassakaan konstruktorissa ei ole parametrina Kayttoraja-luokan oliota 7 Parametriton konstruktori 0.0 Tili-luokan konstruktori luo itselleen n Kayttoraja-luokan parametrittomalla konstruktorilla, joka asettaa alkuarvot 8

5 Jos parametri ei ole null parametrina on Kayttorajaluokan olio (tai null) public Tili(String, double, Kayttoraja ) { if (!= null) { this. = new Kayttoraja(.getVerkkoraja(),.getNostoraja()); else { this. = new Kayttoraja(); olio luodaan Kayttoraja-luokan parametrittomalla konstruktorilla, jos parametri on null olio luodaan Kayttoraja-luokan parametrillisella konstruktorilla, jos parametrina on olio (eli parametri ei ole null). 9 Parametrillinen konstruktori Tili-luokan konstruktori luo itselleen n parametrina tulleen olion tiedoista. Kayttoraja = new Kayttoraja(1200.0, 500.0); Tili tili = new Tili("Fi65123", 200.0, ); Fi65123 4 200.0 1200.0 500.0 10

6 set-metodi Luokkaan tehdään metodi (setxx) komposition muuttamista varten. private Kayttoraja ; muutetaan a parametrina tulleen olion (Kayttoraja-luokan olion) tiedoilla. Metodi siis kopioi parametrina tulleen olion tiedot. public void setkayttoraja(kayttoraja ) { if (!= null) { this..setverkkoraja(.getverkkoraja()); this..setnostoraja(.getnostoraja()); kopiointiin on käytettävä Kayttoraja-luokan metodeja, koska parametri on Kayttoraja-luokan olio Kayttoraja = new Kayttoraja(1200.0, 500.0); tili.setkayttoraja(); 11 get-metodi Luokkaan tehdään metodit attribuuttien (komposition) lukemista (getxx ) varten. private Kayttoraja ; tehdään kopion Tili-luokan sisällä olevasta Kayttoraja-luokan olista public Kayttoraja getkayttoraja() { Kayttoraja Kopio = new Kayttoraja(.getVerkkoraja(),.getNostoraja()); return Kopio; palautetaan kopion Tili-luokan sisällä olevasta Kayttoraja-luokan olista Kayttoraja = tili.getkayttoraja(); 12

7 tostring-metodi tostring-metodilla olion attribuutit muunnetaan merkkijonoksi. Metodia käytetään tietojen näyttämiseen. public String tostring() { return "=" + + ", =" + + ", " +.tostring(); käytetään Kayttorajaluokan metodeja System.out.println(tili.toString()); Tiedot voidaan näyttää myös käyttäen get-metodeja. Kayttoraja = tili.getkayttoraja(); System.out.println("Verkossa: " +.getverkkoraja() + "\nnostossa: " +.getnostoraja()); 13 Pääohjelma public static void main(string[] args) { System.out.print("Anna : "); double = input.nextdouble(); System.out.print("Anna : "); double = input.nextdouble(); tehdään Tili-luokan olio parametrittomalla konstruktorilla, mikä luo n oletusarvoilla tehdään Kayttorajaluokan olio Kayttoraja = new Kayttoraja(, ); tili.setkayttoraja(); System.out.println("Tilin tiedot:\n" + tili.tostring()); Muutetaan Tili-luokan olion n tietoja parametrina tulleen olioin tiedoilla. Set-metodi siis kopioi parametrina tulleen olion tiedot. 14