29
@ Leena Lahtinen 10.1.2 006 OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT

OHJELMAN OSITTAMINEN

  • Upload
    jeri

  • View
    40

  • Download
    1

Embed Size (px)

DESCRIPTION

OHJELMAN OSITTAMINEN. LUOKKA ATTRIBUUTIT METODIT. LUOKKA. JAVA - sovellus koostuu luokista Luokka sisältää attribuutteja ja metodeja Ohjelmassa pitää olla yksi luokka, joka sisältää main - metodin. LUOKKA. Luokka muodostetaan jotain tiettyä tarkoitusta varten - PowerPoint PPT Presentation

Citation preview

Page 1: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

OHJELMAN OSITTAMINEN

LUOKKA

ATTRIBUUTIT

METODIT

Page 2: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

LUOKKA

JAVA - sovellus koostuu luokista

Luokka sisältää attribuutteja ja metodeja

Ohjelmassa pitää olla yksi luokka, joka sisältää main - metodin

Page 3: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

LUOKKA

Luokka muodostetaan jotain tiettyä tarkoitusta varten

Luokan avulla hoidetaan ko. luokan attribuuttien arvojen käsittely

Luokan attribuuttien arvojen käsittely tapahtuu metodien avulla

Osio 1 käsittelee vain yhden luokan metodeja

Page 4: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN MERKITYS

– Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

– Se suorittaa siis jonkin rajatun tehtävän

– Se suoritetaan itsenäisesti omana toimenpide kokonaisuutenaan

Page 5: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN SUORITUS

– Suoritus tapahtuu kutsumalla metodia suoritettavaksi

• tällöin ohjelman kontrolli eli ohjelman kulku siirtyy suorittamaan metodiin kirjoitetut toimenpiteet

• tämän jälkeen kontrolli palaa takaisin kutsukohtaan

Page 6: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

metodi 1 ( ohjelman logiikka)

metodi 2

metodi 3

KUTSU …

KUTSU …

METODIN KUTSUTEKNIIKKA

LUOKKA

Page 7: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

ATTRIBUUTIT JA MUUTTUJAT

LUOKAN ATTRIBUUTIT– attribuutit ovat luokan tietoja (vrt. muuttujia)– ne ovat käytössä koko luokan sisällä kaikissa metodeissa

LUOKAN ATTRIBUUTIT ja MUUTTUJAT– metodi käsittelee luokan attribuutteja– metodilla voi olla myös omia muuttujia, jotka ovat vain

metodin käytössä

Page 8: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS

– Metodien käytössä eli kun siitä kutsutaan suoritukseen, on tärkeänä osana tiedonvälitys

– Tiedonvälitys tapahtuu kutsuvan ja kutsuttavan ohjelman osan välillä

Page 9: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS- TIEDONVÄLITYSPARAMETRIT

• Metodin kutsulauseessa on mukana yleensä tiedonvälitysparametreja eli tavallisia muuttujanimiä

• Tiedonvälitysparametrien arvot sijoittuvat metodissa esiteltyjen vastaanottavien muuttujien arvoiksi

• Tiedonvälitysparametrien ja vastaanottavien muuttujien tulee olla tietotyypiltään täysin samanlaiset, sillä vain silloin tiedonvälitys onnistuu (vrt. sijoitus)

Page 10: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS- TIEDONVÄLITYSPARAMETRIT

• Tiedonvälitysparametrien järjestys kutsulauseessa noudattaa aina metodin vastaanottokykyä

• Kutsuttaessa metodia asetetaan kutsulauseessa tiedonvälitysparametrit siis oikeaan järjestykseen

• Metodin esittelylauseesta nähdään miten metodi ottaa tietoa vastaan

Page 11: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS

TIEDONVÄLITYKSEN VAIHTOEHDOT:

1. Tiedonvälitystä ei ole ollenkaan2. Vain kutsuja välittää tietoa metodiin3. Vain metodi palauttaa yhden tiedon kutsujalle4. Kohdat 2 ja 3 ovat molemmat mukana kutsussa

Page 12: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS

1. Tiedonvälitystä ei ole ollenkaan

- kutsulauseessa ei lähetä tietoa metodiin

- eikä metodi lähetä paluuarvoa takaisin

Page 13: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS

2. Tiedonvälitys vain ohjelmasta metodiin

- vain kutsulauseessa lähetetään tietoja metodiin

- metodi ei lähetä paluuarvoa takaisin

Page 14: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS

3. Vain metodi lähettää paluuarvon kutsujalle

- kutsulausessa ei lähetä tietoa metodiin

- metodi lähettää yhden paluuarvon takaisin

Page 15: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIT JA TIEDONVÄLITYS

4. Tiedonvälitys tapahtuu molempiin suuntiin

- kutsulauseessa lähettää tietoja metodiin

- metodi lähettää yhden paluuarvon takaisin

Page 16: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN KUTSULAUSE Kutsulauseen kirjoitusasu:

• metodin kutsulauseessa on metodin nimi • sekä suluissa niiden tiedonvälitysparametrien nimet,

joiden arvot halutaan lähettää metodiin• jos mukana on myös paluuarvon vastaanotto, niin

kutsulauseeseen otetaan mukaan vastaanottava muuttujanimi sekä sijoitusoperaattori =

Page 17: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODIN KUTSULAUSE

Neljä esimerkkiä kutsulauseesta:

1). kutsulause, jota käytetään silloin, kun tiedonvälitystä ei ole ollenkaan

UML: KUTSU metodi ( )

Java: metodi () ;

METODI

Page 18: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

2). kutsulause, jossa on mukana suluissa niiden tiedonvälitysparametrien nimet, joiden arvot sijoittuvat metodiin

UML: KUTSU metodi (tp1, tp2)

Java: metodi (tp1,tp2) ;

METODI

Page 19: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

3). kutsulause, jossa on mukana metodin paluuarvon vastaanottavan muuttujan nimi

UML: vastottava = KUTSU metodi ( )

Java: vastottava = metodi () ;

Page 20: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

4). kutsulause, jossa on mukana suluissa tiedonvälitysparametrien nimet ja paluuarvon vastaanottavan muuttujan nimi

UML: vastottava = KUTSU metodi (m1, m2 )

Java: vastottava = metodi (m1, m2) ;

Page 21: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN ESITTELY

– metodi alkaa aina metodin esittelyllä– esittely sisältää kolme osaa:

a) metodin esittely kertoo metodin nimen

b) suluissa on tiedonvälitysparametrien esittely

c) esittely kertoo myös paluuarvon tietotyypin

Page 22: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN ESITTELY

1). Metodin esittelylause, johon ei liity tiedonvälitystä

UML: metodi ( )

Java: static void metodi ( )

Huom ! esittely ei pääty puolipisteeseen !

Page 23: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN ESITTELY

2). Metodin esittelylause, jossa on kaksi muuttujanimeä tiedon vastaanottoa varten (tiedonvälitysparametrit)

UML: metodi (m1 N3, m2 AN30)

Java: static void metodi (int m1, String m2)

Page 24: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN ESITTELY

3). Metodin esittelylause, jossa näkyy vain paluuarvon tyyppi

UML: metodi ( ) N3

Java: static int metodi ( )

Page 25: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN ESITTELY

4). Metodin esittelylause, jossa on mukana kaikki tiedonvälitys vaihtoehdot

UML: metodi (luku N5) AN20

Java: static String metodi (int luku)

Page 26: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN PALUUARVO

– Metodi palauttaa vain yhden tiedon paluuarvona kutsuvalle ohjelmalle

– Paluuarvo sijoittuu kutsulauseessa olevan vastaanottavan muuttujan sisällöksi

Page 27: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN PALUUARVO

PALUUARVON PALAUTUS:

UML – kaaviossa käytetään sanaa palauta ja muuttujanimi

Javassa käytetään sanaa return ja sanan yhteydessä ilmoitetaan suluissa sen muuttujan nimi, jonka sisältö palautetaan kutsujalle (arvo sijoittuu siis kutsulauseessa olevan muuttujan arvoksi)

Page 28: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODI

METODIN PALUUARVO

– Paluuarvon lähetyslause:

- metodi palauttaa paluuarvon, esimerkiksi sukunimen:

UML: palauta (sukunimi)

Java: return (sukunimi) ;

Page 29: OHJELMAN OSITTAMINEN

@ Leena Lahtinen 10.1.2006

METODIEsimerkkiohjelma:

import java.util.Scanner;public class Ohjelma { public static void main (String [ ] args) {

Scanner input = new Scanner (System.in) ;int a, b ;System.out.println (”Anna luku”) ;a = input.nextInt () ;b = vahenna (a) ;System.out.println (”Vähensin yhden, tulos on ” + b) ;

}

static int vahenna (int a){

a = a – 1 ;return (a) ;

}}