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

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
16. Javan omat luokat.
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
22. Taulukot.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Olio-ohjelmoinnin perusteet luento 3
16. Lohkot Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
9. Periytyminen Javassa.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
7. Oliot ja viitteet.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Java Java on Sun Microsystems yhtiön kehittämä laaja olio-pohjainen ohjelmointikieli, joka on laitteistoriippumaton. Laitteistoriippumattomuudessa on.
String-vertailusta ja Scannerin käytöstä (1/2)
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
19. Olio-ohjelmointia Javalla
Kuinka niitä käsitellään
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
22. Taulukot.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Olio-ohjelmoinista lyhyesti. 2.2 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen.
15. Ohjelmoinnin tekniikkaa Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi.
String-vertailusta ja Scannerin käytöstä (1/2)
17. Kooste.
5. Kapselointi.
6. Metodit.
3. Olio-ohjelmoinista lyhyesti
1. Omat operaatiot.
11. Rajapinnat.
2. Taulukot.
7. Hyvä ohjelmointitapa..
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
15. Lohkot.
14. Hyvä ohjelmointitapa.
2. Taulukot.
15. Lohkot.
6. Metodit.
7. Oliot ja viitteet.
13. Pakkaukset.
4. Attribuutit.
7. Hyvä ohjelmointitapa..
7. Näytölle tulostaminen
3. Attribuutit.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

4. Attribuutit 4.1

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

Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely tyypillisesti ennen metodeja. Esitellään lähes kuten “tavalliset” muuttujat tai vakiot. Lisänä näkyvyys- määreitä. public class Kissa { // Attribuutit. private String vari; private String hanta; // Metodit. public void aantele(String s) { System.out.println(s); } 4.3

Näkyvyys luokan sisällä Metodien tapaan attribuuttien näkyvyyttä voidaan tarkastella luokan sisä- ja ulkopuolelta. Attribuutit näkyvät kaikkialla luokan sisällä (globaalisti): − Luokassa voi olla vain yksi tietyn niminen attribuutti. − Attribuutti on käytettävissä kaikissa luokan metodeissa. − Muistuttavat proseduraalisten ohjelmointikielien globaaleja muuttujia. 4.4

Näkyvyys luokan sisällä Attribuutit rikkovat modulaarisuustavoitetta samoin kuin globaalit muuttujat proseduraalisissa kielissä. − Runsaasti attribuutteja sisältävästä koodista on mahdoton nähdä, missä kaikkialla tietoja muutetaan. − Parametreilla ja paluuarvoilla tapahtuvan tiedon- välityksen saa korvata attribuuteilla vain hyvästä syystä. Vakiomuotoisia attribuutteja voi käyttää vapaammin. − Esim. private final int HENKIENMAXLKM = 7; 4.5

Näkyvyys luokan sisällä Jos metodin muuttujalla tai parametrilla on sama tunnus kuin attribuutilla, ei tapahdu nimikonfliktia, vaan metodin tunnus peittää (hide) attribuutin tunnuksen. Peitetty tunnus saadaan käyttöön this -attribuutilla. this viittaa olioon itseensä ja on aina käytettävissä automaattisesti ilman esittelyä. Peittämiseen harvoin tarvetta. public class Peittodemo { // Esitellään ja alustetaan attribuutti. private int x = 1; // Peitetään ja näytetään attribuutti. public void tulosta() { // Attribuutin peittävä muuttuja. int x = 2; // Tulostaa muuttujan arvon (2). System.out.println(x); // Tulostaa attribuutin arvon (1). System.out.println( this.x); } 4.6

Näkyvyys luokan ulkopuolelta Luokan tiedot pyritään kätkemään, jotta tietojen muuttaminen ympäristöstä käsin ei olisi mahdollista. Javassa tämä tehdään private -määreellä, jolloin attribuutti on käytettävissä vain luokkansa sisällä. Koska vakioiden arvoja ei voida muuttaa, asetetaan vakioidut attribuutit joskus suoraan näkyviin public - määreellä. Pakkausten ja periytymisen yhteydessä esitellään lisää keinoja näkyvyyden määrittelyyn. 4.7

Aksessorit Piilotetun datan käsittelyyn tarvitaan niin sanotut aksessorit (accessors), jotka ovat metodeja attribuutin arvojen lukemiseen ja asettamiseen. − Vain attribuuteille, joita on tarpeen käsitellä luokan ulkopuolelta. Mahdollisimman lyhyitä metodeja, joissa ei tehdä mitään turhaa. Ei tarvitse kommentoida ellei jotain erityistä. 4.8

Aksessorit Lukumetodi: − Rungossa ainoastaan attribuutin arvon palauttava return -lause. − Tyyppi tavallisesti sama kuin attribuutin tyyppi. Asetusmetodi: − Attribuutin arvo välitetään parametrina. − Arvoa ei siis koskaan lueta metodissa. − Tulisi tarkistaa tiedon oikeellisuus. (Esimerkiksi arvoalueelle kuulumisen tai muistinvarauksen tarkistus.) − Virheellinen tieto voidaan jättää huomiotta, jolloin metodi on tyypitön ( void ). − Virheestä voidaan ilmoittaa myös paluuarvolla, mutta tämä on harvinaista. 4.9

Aksessorit Aksessoreita kutsutaan usein settereiksi ja gettereiksi, koska englannin kielessä aksessorien nimet aloitetaan set - ja get -sanoilla. Esim. Person pete = new Person(); pete.setAge(10); int age = pete.getAge(); Suomeksi kirjoitetussa koodissa voi käyttää esimerkiksi vastaavia aseta - ja lue -sanoja. − Nimen voi myös johtaa attribuutin tunnuksesta kuormittaen. Esim. Henkilo pete = new Henkilo(); pete.asetaIka(10); int ika = pete.lueIka(); pete.ika(10); int ika = pete.ika(); // kuorimittaen 4.10

Kissa-luokka (Kissa.java) public class Kissa { /* Attribuutit ***************/ private String vari; private String hanta; /* Aksessorit ***************/ // Värin lukeminen. public String vari() { return vari; } // Värin asetus. public void vari(String v) { if (v != null ) vari = v; } // Hännän tyypin lukeminen. public String hanta() { return hanta; } // Hännän tyypin asetus. public void hanta(String h) { if (h != null ) hanta = h; }... } Huom! Metodeissa ei tarvita static -määrettä, koska luokassa ei ole main -metodia. 4.11