# En klasse beskriver et sett med objekter med lik oppf?rsel # Vi kan for eksempel lage en klasse Person, med egenskaper vi er interessert i # for ? opprette og bruke person-objekter. class Person: # Klassenavn skrives med stor forbokstav # Alle klasser m? ha en konstrukt?r # __init__() som kj?res hver gang et objekt av klassen opprettes # Denne metodens parametre er det objektene tar som parametre n?r de opprettes def __init__(self, navn, alder, h?yde): # Alle metoder trenger self-parameteren # Instansvariabler opprettes i konstrukt?ren med self for ? kunne n?es utenfra # Skriver _ foran instansvariablene for ? innkapsle dem. # Understreker at de ikke skal n?es utenfra klassen, kun gjennom klassens egne metoder self._navn = navn self._alder = alder self._h?yde = h?yde # Disse metodene kan man kalle p? gjennom et objekt av klassen ved ? skrive feks objekt.hils() def hils(self): print("Hei! Jeg heter " + self._navn + " og er " + str(self._alder) + " ?r gammel.") def feire_bursdag(self): self._alder += 1 if self._alder < 18: self._h?yde += 2 print("Hurra! " + self._navn + " blir " + str(self._alder) +" ?r!") # N? har vi opprettet en klasse som kan lagre ting om objektet i instansvariabler # og utf?re handlinger gjennom klassemetodene # Men dette er ikke et Person-objekt, kun en mal som viser hvordan objektene av # denne klassen ser ut # For ? opprette et objekt av klassen Person, kan vi skrive: nils = Person("Nils", 24, 184) # navn, alder og h?yde sendes inn som argumenter # N? kan vi kalle p? metodene nils har, som definert i Person-klassen: nils.hils() # Sender ikke inn noe for 'self', det skjer automatisk nils.feire_bursdag() # For ? bruke denne klassen i en annen fil i samme mappe kan vi skrive # from import # ?verst i fila. Da kan vi bruke klassen helt likt som om vi hadde skrevet alt i samme fil # merk at filnavn og klassenavn b?r v?re like, utenom # stor forbokstav i klassenavnet mot liten forbokstav i filnavnet