Objektid
self
Igal pool klassi meetodites on kasutatud sõna self, mida see teeb, mis see on?
Self on üks kaval sõna :-). Asi on nimelt selles, et klassi defineerimine tähendab ainult plaani või joonise tegemist, mille järgi objekte tegema hakatakse. Objekte aga võib olla palju ühesuguseid ainult erineva nimega. Siit tulebki välja vajadus isevärki sõna järele.
Kuidas?
Kui meil on mitu objekti raamatuid, näiteks jutukas, lastekas, romaan vms., siis iga selle objekti jaoks kehtivad täpselt ühed ja samad meetodid, mis on kirjeldatud klassis. Kust programm peab teadma meetodi käima panemisel, millise isendi parameetreid ta peaks muutma? Sellepärast ongi võetud kasutusele lisamuutuja self, mis saab väärtuse objektilt, kes ta välja kutsus. Kui kutsuja on jutukas.avamine(), siis self=jutukas, kui romaan.sulgemine(), siis self=romaan jne.
Muideks muutuja nime self asemel võib tegelikult kasutada mistahes sõna, kuid jällegi, tasub hoida kinni traditsioonidest, sest see muudab teiste koodi lugemise ja sinu koodi lugemise palju arusaadavamaks.