160 likes | 267 Views
Luokan määrittely class-määreellä. Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden määrittelyä. Luokan määrittely kertoo, mitä tietoja sen luokan olioilla on ja mitä palveluja luokan oliot asiakasolioilleen tarjoavat.
E N D
Luokan määrittely class-määreellä • Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden määrittelyä. • Luokan määrittely kertoo, mitä tietoja sen luokan olioilla on ja mitä palveluja luokan oliot asiakasolioilleen tarjoavat. • Luokan määrittely on itse asiassa tyyppimäärittely, jota tarvitaan myöhemmin olioita luotaessa ja olioille viestiä lähetettäessä. • Luokkatyypin määrittely ei varaa muistia olion talletusta varten. tMyn
PHP:ssä tietojäseniä (jäsenmuuttujia) kutsutaan myös ominaisuuksiksi (attribute) ja jäsenfunktioita kutsutaan metodeiksi (method). • Huom! Luokan määrittely ei lopu puolipisteeseen: tMyn
Luokkatyypin eli luokan määrittely: class luokanNimi { tietojäsenten esittely; jäsenfunktioiden määrittely; } • Luokan jäsenten näkyvyyteen voidaan vaikuttaa varatuilla sanoilla private, protected ja public. • Nämä varatut sanat ovat saantimääreitä (access specifier, access modifiers). tMyn
private-määreen jäljessä esitellyt luokan jäsenet ovat yksityisiä eli ne ovat käytettävissä ainoastaan luokan sisällä. • public-määreen jäljessä esitellyt luokan jäsenet ovat julkisia ja ne ovat käytettävissä missä kohtaa lähdekoodia tahansa, jossa luokkatyypin mukainen olio on viittausalueella. • protected-määre määrittelee tiedot suojatuiksi, määre liittyy periytymiseen. • Yleensä luokan tietojäsenet esitellään private-määreen jäljessä ja jäsenfunktiot public-määreen jäljessä. tMyn
Otetaan saantimääreet mukaan luokan määrittelyyn: class luokanNimi { public jäsenfunktioiden määrittely; private tietojäsenten esittely; } • Saantimääreet voi periaatteessa asetella mieleisekseen, mutta tietojäseniä ei silti ole syytä määritellä julkisiksi oikeastaan koskaan. tMyn
$this-muuttuja viittaa luokan nykyiseen olioon. Sen avulla voidaan viitata käsillä olevan luokan metodiin tai ominaisuuteen. Huomaa syntaksi! tMyn
Koska vaikkapa tietojäsen $m_etunimi on private-tyyppinen, sitä voi käyttää vain saman luokan jäsenfunktioiden kautta. • Sitä ei voi kutsua luokan ulkopuolelta: tMyn
Jos haluttaisiin kutsua luokan tietojäseniä luokan ulkopuolelta, niin silloin tulisi asettaa tietojäsen public-tyyppisiksi. • Nyt siis ohjelma toimii, vaikka tietojäsenten asettaminen public-tyyppiseksi on vastoin olio-ohjelmoinnin periaatteita (data hiding): tMyn