Mikä yhteyssuhde on?



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

Olio-ohjelmointi Javalla

YHTEYSSUHDE (assosiation)

Luokan sisällä on lista

Periytyminen (inheritance)

Vahva koostumussuhde (Composition)

UML ja luokkien väliset suhteet

Metodien tekeminen Javalla

1 Tehtävän kuvaus ja analysointi

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

public static void main (String [] args)

Listarakenne (ArrayList-luokka)

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

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

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

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Luokat ja oliot. Ville Sundberg

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

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

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

2. Olio-ohjelmoinista lyhyesti 2.1

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

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

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

Metodien tekeminen Javalla

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

Lista luokan sisällä

Javan perusteita. Janne Käki

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

Tietokannat II -kurssin harjoitustyö

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

7. Oliot ja viitteet 7.1

Oliot viestivät metodeja kutsuen

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

Ohjelmoinnin jatkokurssi, kurssikoe

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

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

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

Rajapinta (interface)

KOHDELUOKAN MÄÄRITTELY

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

19. Olio-ohjelmointia Javalla 19.1

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

16. Javan omat luokat 16.1

Ohjelmointi 2, välikoe

9. Periytyminen Javassa 9.1

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

812347A Olio-ohjelmointi, X Reflektiivisyys

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

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

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

Taulukoiden käsittely Javalla

4. Olio-ohjelmoinista lyhyesti 4.1

14. Poikkeukset 14.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

Ohjelmistotekniikan menetelmät, koe

9. Periytyminen Javassa 9.1

Java-kielen perusteet

14. Poikkeukset 14.1

ict02d Osio2- luento 3 Olio-ohjelmointi: Luokkien kirjoittaminen

Luokan muodostimet (Constructors)

Rinnakkaisohjelmointi, Syksy 2006

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

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

20. Javan omat luokat 20.1

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

1. Olio-ohjelmointi 1.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Poikkeustenkäsittely

Taulukot. Jukka Harju, Jukka Juslin

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Interaktiivinen tarinankerronta

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

TIETORAKENTEET JA ALGORITMIT

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

Java kahdessa tunnissa. Jyry Suvilehto

Javan GUI Scratchaajalle

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

JAVA-OHJELMOINTI 3 op A274615

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

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

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

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

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 )

Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Ta

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

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Ehto- ja toistolauseet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

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

P e d a c o d e ohjelmointikoulutus verkossa

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

Tietokannat II -kurssin harjoitustyö

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Transkriptio:

1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String Yhteysuhde Yhteyssuhteella tarkoitetaan sitä, että luokalla on suhde (yhteys) toiseen luokkaan. 2

2 Tili-luokkaan lisätään -attribuutti, mikä on Asiakasluokkaa. Tili-luokan olio sisältää viitteen Asiakas-luokan olioon. viittaa Asiakas-luokan olioon. Tarkoituksena on siis kertoa, kuka omistaa tilin Kun olio syntyy, yhteys toisen luokan olioon laitetaan null:ksi, jos yhteydestä ei ole tietoa null 3 Kun olio syntyy, voidaan olioon laittaa tieto yhteydestä toiseen olioon hetu Kun olio tuhoutuu, yhteydessä ollut olio on edelleen elossa hetu 4

3 private String ; private double ; private Asiakas ; Yhteyssuhde Javalla Tili-luokassa on viite Asiakas-luokan olioon. Yhteys luodaan Tili-luokan metodeilla (konstruktorilla tai set-metodilla) 0.0 null public class Asiakas { private String hetu, ; hetu public Asiakas() { hetu = ""; = ""; public Asiakas(String hetu, String ) { this.hetu = hetu; this. = ; Asiakas asiakas = new Asiakas(); Konstruktorit private Asiakas ; public Tili() { = null; -viitteeseen laitetaan null, koska ei ole yhteyttä eli tietoa sta public Tili(String, double ) { = null; public Tili(String, double, Asiakas ) { this. = ; Tili-luokan olioon laitetaan yhteys (viite), missä Asiakas-luokan olio on 6

4 Parametriton konstruktori 0.0 null Tili-luokan olioon laitetaan null, koska ei ole tietoa sta Parametrillinen konstruktori Asiakas asiakas = new Asiakas ("123456-1234", "Maija"); Tili tili = new Tili("Fi65123", 200.0, asiakas); Fi65123 4 200.0 hetu 123456-1234 Maija Tili-luokan olioon laitetaan yhteys (viite), missä Asiakas-luokan olio on. Konstruktori siis luo yllä yhteyden. 7 set-metodi Luokkaan tehdään metodi (setxx) yhteyden asettamista varten. private Asiakas ; Laitetaan Tili-luokan olioon yhteys (viite) Asiakas-luokan olioon. public void setomistaja(asiakas ) { this. = ; Luodaan erikseen Tili-luokan olio ja Asiakas-luokan olio. Sen jälkeen tehdään yhteys setomistaja-metodilla. Asiakas asiakas = new Asiakas ("123456-1234", "Maija"); tili.setomistaja(asiakas); 8

5 Luokkaan tehdään metodit attribuuttien (yhteyssuhde) lukemista (getxx ) varten. private Asiakas ; get-metodi public Asiakas getomistaja() { return ; palautetaan yhteys (viite) Asiakasluokan olioon Asiakas asiakas = tili.getomistaja(); saadaan yhteys (viite), missä Asiakas-luokan olio on. Tässä tilanteessa tulee null, koska Tili-luokan olio on luotu parametrittomalla konstruktorilla eikä siis ole tietoa 9 sta. tostring-metodi tostring-metodilla olion attribuutit muunnetaan merkkijonoksi. Metodia käytetään tietojen näyttämiseen. public String tostring() { String palautus = ""; Omistaja-attribuutti on Asiakas-luokkaa, joten kutsutaan Asiakas-luokan tostringmetodia if (!= null) { palautus = "=" + + ", =" + + ", =" +.tostring(); else { palautus = "=" + + ", =" + ; return palautus; jos Tili-luokan olion -attribuutin arvo on null (eli tilillä ei ole a), attribuutille ei saa kutsua metodeja System.out.println(tili.toString()); 10

6 Pääohjelma public static void main(string[] args) { System.out.print("Anna tilin n hetu: "); String hetu = input.nextline(); System.out.print("Anna tilin n : "); String = input.nextline(); luodaan Tili-luokan olio, tilin ksi tulee null luodaan Asiakas-luokan olio // Luodaan Asiakas asiakas = new Asiakas(hetu, ); // Laitetaan tiliin viite an tili.setomistaja(asiakas); luodaan yhteys Tili-luokan ja Asiakas-luokan olioiden välille System.out.println("Tilin tiedot:\n" + tili.tostring()); 11