New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Luokka (ohjelmointi) – Wikipedia

Luokka (ohjelmointi)

Wikipedia

Luokka voi olla myös taksonomian luokka biologiassa.

Luokka (class) tarkoittaa olio-ohjelmoinnissa olion mallia. Luokan ohjeiden mukaan luodaan ohjelmaa ajettaessa olio (object).

[muokkaa] Luokan ja olion suhde

Ajatus luokan ja olion suhteesta pohjautuu Platonin ideaoppiin. Olio vastaa Platonin aistimaailman jäljitelmää. Luokka eli idea antaa rakennusohjeet olion muodostamiselle: se määrittelee olion rakenteen ja käyttäytymisen. Havainnollistava esimerkki on piparkakkumuotti: luokka on kuin metallinen piparimuotti, jolla tehdään taikinasta pipari-olioita. Kukin pipari on erilainen, vaikka kaikissa käytettiin samaa mallia. Esimerkissä huomataan myös luokan rooli: vaikka luokka-piparimuotilla on mahdollista tehdä pipareita, ei luokka kuitenkaan itse ole syötävä pipari, vaan pelkkä mallina toimiva muotti. Konkreettinen ero syntyy myös ohjelmaa ajettaessa: luokat kirjoitetaan ohjelmakoodiin, oliot syntyvät luokista vasta sitten kun ohjelma ajetaan.

  • Esim 1. Talon pohjapiirustus on luokka, jonka pohjalta voidaan luoda olio talo.
  • Esim 2. DNA on luokka jonka pohjalta voidaan luoda olio proteiini.

Tietokoneohjelmissa luokassa määritellään lisäksi tiedot siitä, miten olioita käyttään sen jälkeen kun ne on valmistettu.

[muokkaa] Luokan muodostaminen olioksi

Jotta luokasta voidaan muodostaa olio, tarvitaan kolmas osapuoli, joka lukee ja tulkitsee luokan ja muodostaa siitä toimivan olion. Esimerkiksi talon pohjapiirustus ei yksinään tee taloa, vaan tarvitaan vielä lisäksi

  • Raaka-aineita
  • Osaavaa työvoimaa, joka osaa rakentaa kohteen

Tietokone-ohjelmien tapauksessa raaka-aineena toimii tietojärjestelmän muisti (paikallinen tai hajautettu), jonne olioiden tiedot talletetaan. Työvoimana toimii tietokoneen prosessori, joka lukee olion piirustuksista kuinka se rakennetaan. Olion valmistusvaiheessa tietokone luo varaa osoite-avaruuden, jonne olio lopullisesti sijoitetaan sekä sen yhteyteen olion yhteyssä etukäteen määritellyt funktiot (proseduurit). Olioiden funktioiden toteutustapa on proseduraalinen ohjelmointikieli ja niiden erikoispiirteenä on, että nämä funkiot pystyvät lukemaan myös niitä muuttujia, jotka on määritelty yksityiksiksi tiedoiksi (engl. private variables).

[muokkaa] Periytyminen

Olio-ohjelmoinnissa käytetään käsitettä periytyminen kun uusi luokka saa (perii) jo olemassa olevan luokan ominaisuudet. Periytymisen ansiosta ohjelmoinnin työmäärä vähenee, kun aiemmin tehtyjä luokkia voidaan käyttää hyväksi vain tarpeelliset komponentit lisäämällä. Sellaista luokkaa, josta on periytetty muita luokkia, kutsutaan periytetyn luokan yläluokaksi, ja periytettyä luokkaa vastaavasti alaluokaksi (tai aliluokaksi). Alaluokassa voidaan peittää yläluokan ominaisuuksia sekä lisätä uusia.

Esimerkiksi luokka "kissa" voi periä luokan "eläin". Tällöin kissaluokalla on samat ominaisuudet ja toiminnot eläinluokalla. Tässä tapauksessa eläin olisi yläluokka ja kissa alaluokka.

  • Esim 1. Piirto-ohjelmassa voisi olla luokka 'kuvio' ja tällä aliluokat 'kolmio' ja 'ympyrä'. Ikkunaa piirrettäessä käydään läpi listaa 'kuvio'-luokkaan kuuluvista olioista ja pyydetään jokaista oliota piirtämään itsensä. Jokainen kuvio piirtää itsensä oikein sen mukaan, onko kyseessä 'kolmio' vai 'ympyrä'. Kun ikkunan piirto ei ota kantaa siihen, mitä kuvioita ikkunassa on, on helppo laajentaa ohjelmaa periyttämällä kuvio-luokasta vaikkapa 'neliö'-luokka.

Joissakin ohjelmointikielissä yhdellä luokalla voi olla vain yksi yläluokka, joissakin taas rajattomasti. Jos yläluokkia voi olla useita, käytetään termiä moniperintä. Moniperintään tukemattomissa ohjelmointikielissä, kuten Javassa, ongelman voi kiertää rajapintaluokkia käyttämällä.

Joissakin ohjelmointikielissä on olemassa myös abstrakteja luokkia, joista ei voi luoda ilmentymiä (olioita).

Muilla kielillä

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu