Sopimuspohjainen olio-ohjelmointi
Sopimuspohjainen olio-ohjelmointi 2008-03-12 2008-03-12
(c) 2006-2008 Jouni Smed
(c) 2006-2008 Jouni Smed 1 1
3. Luokan muodostaminen 3. Luokan muodostaminen
1. 1. Esimerkki: Esimerkki: LukuJoukko LukuJoukko 2.
2. Sisäisen esitysmuodon eheys Sisäisen esitysmuodon eheys 3. 3. Javan luokkamekanismin Javan luokkamekanismin
erityispiirteitä erityispiirteitä
Luokka vs. olio Luokka vs. olio
Luokka ( Luokka (class class) )
määrittelee olion piirteet
määrittelee olion piirteet
Olio ( Olio (object object) )
luokan yksitttäinen instanssi
luokan yksitttäinen instanssi
Abstraktio: olion ulkoiset Abstraktio: olion ulkoiset piirteet
piirteet
Kapselointi: olion sisäinen Kapselointi: olion sisäinen toteutus
toteutus
Luokanmuodostuksen Luokanmuodostuksen vaiheet
vaiheet
Piirteiden kartoittaminenPiirteiden kartoittaminen
luontioperaatiotluontioperaatiot
havainnoijathavainnoijat
muunnosoperaatiotmuunnosoperaatiot
Operaatioiden määrittelyOperaatioiden määrittely
Julkisen liitännän kiinnittäminenJulkisen liitännän kiinnittäminen
Konkreetin esitystavan valintaKonkreetin esitystavan valinta
Tietojen hallinta valitussa esitystavassaTietojen hallinta valitussa esitystavassa
Toteutukseen liittyvät päätöksetToteutukseen liittyvät päätökset
YleistäminenYleistäminen
Esimerkki:
Esimerkki: LukuJoukko LukuJoukko
Matemaattisen joukkokäsitteen Matemaattisen joukkokäsitteen toteuttava luokka
toteuttava luokka
kokonaisluvuille
kokonaisluvuille
Sopimuspohjainen olio-ohjelmointi
Sopimuspohjainen olio-ohjelmointi 2008-03-12 2008-03-12
(c) 2006-2008 Jouni Smed
(c) 2006-2008 Jouni Smed 2 2
Ulkoiset ja sisäiset uhat Ulkoiset ja sisäiset uhat
Ulkoinen Ulkoinen hyökkäys hyökkäys
Ulkopuolinen olio
Ulkopuolinen olio Tarkasteltava olioTarkasteltava olio
sisäinen sisäinen esitysmuoto esitysmuoto
luokan omat luokan omat
rutiinit rutiinit Sisäinen Sisäinen hyökkäys hyökkäys Suojaus-
Suojaus- määreet
määreet Luokka-
Luokka- invariantti invariantti
Olion tila Olion tila
Asiakas Asiakas public public
Toteuttaja Toteuttaja
private private
Abstraktiofunktio Abstraktiofunktio
Konkreetti toteutus
Konkreetti toteutus Privaatti luokkainvarianttiPrivaatti luokkainvariantti Julkinen liitäntä
Julkinen liitäntä
Julkinen Julkinen luokkainvariantti luokkainvariantti