...
Luokan
...
määrittely
...
alkaa
...
avainsanalla
...
class,
...
jota
...
seuraa
...
luokan
...
nimeävä
...
tunniste.
...
Tätä
...
seuraa
...
lohko,
...
jossa
...
listataan
...
luokan
...
metodit
...
ja
...
jäsenmuuttujat.
...
Luokan
...
määrittelyn
...
jälkeen
...
luokan
...
nimi
...
toimii
...
funktiona,
...
joka
...
palauttaa
...
luokan
...
instanssin
...
eli
...
olion.
...
Saman
...
luokan
...
oliot
...
sisältävät
...
samat
...
jäsenfunktiot
...
ja
...
metodit,
...
mutta
...
niiden
...
sisältämä
...
tieto
...
voi
...
olla
...
yksittäisillä
...
olioilla
...
erilaiset.
Luokan ja olion ero on sama kuin muuttujatyypin ja yksittäisen muuttujan. Esimerkiksi kaikki kokonaisluku muuttujat sisältävät kokonaislukuja, mutta yksittäisillä muuttujilla on eri arvot kuten 5 tai -99.
Jäsenmuuttujat sisältävät yksittäisen olion tiedot luokkakohtaisissa tietokentissä. Metodit - toiselta nimeltään jäsenfunktiot - käyttävät luokan jäsenmuuttujia. Metodit määritellään samalla tavalla kuin tavalliset funktiot, mutta niiden pitää olla luokka määrityksen sisällä. Lisäksi, käyttääkseen luokan jäsenmuuttujia, määrittelyssä ensimmäiseksi parametriksi täytyy antaa luokkaa kuvaava muuttuja - tavallisesti sille annetaan nimi self; jäsenmuuttujia voi käyttää pisteoperaattorin avulla.
Tässä on yksinkertainen luokka container, jolla on yksi jäsenmuuttuja ja metodeja, jotka palauttavat sen arvon muunneltuna. Ohjelmassa tehdään kaksi oliota ja sijoitellaan niiden jäsenmuuttujaan arvo ja palautetaan se useammalla tavalla.
Code Block |
---|
Luokan ja olion ero on sama kuin muuttujatyypin ja yksittäisen muuttujan. Esimerkiksi kaikki kokonaisluku muuttujat sisältävät kokonaislukuja, mutta yksittäisillä muuttujilla on eri arvot kuten 5 tai \-99. Jäsenmuuttujat sisältävät yksittäisen olion tiedot luokkakohtaisissa tietokentissä. Metodit - toiselta nimeltään jäsenfunktiot - käyttävät luokan jäsenmuuttujia. Metodit määritellään samalla tavalla kuin tavalliset funktiot, mutta niiden pitää olla luokka määrityksen sisällä. Lisäksi, käyttääkseen luokan jäsenmuuttujia, määrittelyssä ensimmäiseksi parametriksi täytyy antaa luokkaa kuvaava muuttuja - tavallisesti sille annetaan nimi self; jäsenmuuttujia voi käyttää pisteoperaattorin avulla. Tässä on yksinkertainen luokka container, jolla on yksi jäsenmuuttuja ja metodeja, jotka palauttavat sen arvon muunneltuna. Ohjelmassa tehdään kaksi oliota ja sijoitellaan niiden jäsenmuuttujaan arvo ja palautetaan se useammalla tavalla. {code} class container: _value = 0 def getSquare(self): return self.value ** 2 def getNegation(self): return -self.value s = "olion a arvo on %s\nolion b arvo on %s\n" a = container() b = container() print(s % (a.value, b.value)) a.value = 7 b.value = a.getSquare() print(s % (a.value, b.value)) a.value = b.getNegation() + 4 b.value = "abcdef" print(s % (a.value, b.value)) input("Paina Enter-näppäintä lopettaaksesi...") {code} |
Ohjelman
...
tiedon
...
ja
...
toiminnallisuuden
...
(siis
...
muuttujien
...
ja
...
funktioiden)
...
järjestäminen
...
luokkiin
...
tällä
...
tavalla
...
on
...
olio-ohjelmoinnin
...
perusajatus.
...
Se
...
lisää
...
ohjelmaan
...
modulaarisuutta;
...
suuret
...
ohjelmat
...
on
...
helpompi
...
hahmottaa
...
kun
...
ne
...
on
...
jaettu
...
pienempiin
...
osiin.
...
Olio-ohjelmointi
...
lisää
...
myös
...
uudelleenkäytettävyyttä
...
koska
...
luokat
...
-
...
samoin
...
kuin
...
funktiot
...
-
...
voidaan
...
säilöä
...
erillisiin
...
moduleihin
...
ladattaviksi
...
uusiin
...
ohjelmiin.