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. |