Codecademy -introduction to classes linkki
Codecademy -Classes linkki
Luokka on kuin piparkakkumuotti jolla luodaan ohjelman suorituksen aikana olioita (piparkakkuja).
Luokan luonti:
class auto (object):
def __init__(self, vari, rekisteri):
self.vari = vari
self.rekisteri = rekisteri
Olio
Luokan instanssin eli olion luonti ohjelmakoodissa
Jeppe = auto("sininen", "VYN-784")
McQueen = auto("punainen", "MC-1")
Luokan yhteinen tieto
Kaikille luokkaan kuuluville olioille voidaan luoda yhteinen ominaisuus muuttujalla seuraavasti:
class auto (object):
renkaat = 4
def __init__(self, vari, rekisteri):
vari = self.vari
rekisteri = self.rekisteri
Nyt jokaisella autolla on ominaisuus renkaat, johon voi viitata pisteoperaattorilla olio.muuttuja eli esimerkiksi Jeppe.renkaat, jonka arvo on siis 4.
Luokan funktiot
Luokalle määritetään toiminnallisuus funktioiden avulla kuten normaalit funktiot. Olion funktioita kutsutaan pisteoperaattorilla olio.funktionimi(),
class auto (object):
renkaat = 4
def __init__(self, vari, rekisteri):
self.vari = vari
self.rekisteri = rekisteri
def anna_vari(self):
return self.vari
def maalaa(self, uusivari):
self.vari = uusivari
Jeppe = auto("sininen", "VYN-784")
McQueen = auto("punainen", "MC-1")
print Jeppe.anna_vari() #tasta alkaa varsinainen ohjelma, HOX! ei sisennysta.
Jeppe.maalaa("valkoinen")
print "uusi vari on ", Jeppe.anna_vari()
T8.1. alus -luokka
Tee luokka jolla muodostetaan aluksia peliin. Aluksilla on ominaisuudet x ja y, joilla ilmoitetaan paikka ja energia. Lisää funktiot:
1) muutaX(x) jolla muutetaan x-koordinaattia
2) muutaY(y), jolla muutetaan y-koordinaattia
3) osuma(), jolla energia pienenee 1 pisteellä
T8.2. Oppitunti-luokka
Tee luokka oppitunti Oppitunti muodostetaan alustuksessa muuttujilla aine, opettaja ja läsnäolijat. Oppitunnilla on fuktiot
muutaOpe() , ja
poissaolijat(), joka kysyy poissaolijoiden määrän ja muuttaa läsnäolijoiden määrän. ja
tulosta() , joka tulostaa aineen, opettajan ja läsnäolijat.
Lisää koodi joka tekee 2 kurssi-oliota, tulostaa niiden tiedot, muuttaa läsnnäolijat ja tulostaa uudet tiedot.