Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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.