OOP

OOP tehnikad

Kapseldamine – funktsionaalsus peidatakse. Näiteks, kui kasutaja kasutab meetod, ta ei pea teada mida metoodis asub

Modulaarsus – programm jagatakse iseseisvateks tükkideks

Polümorfism – alamklass saab meetodeid üle kirjutada. Näiteks, kui sa lood uue klassi ja meetodit üle kirjutada, siis see nimetab “Polümorfism”

Pärimine – alamklass pärib omadused ja meetodid

Objekt

  • Objekt kirjeldab ära konreetse loogilise kogumi
    • näiteks õues olev punane auto on üks objekt
    • selle taga olev rohaline auto on teine objekt jne
  • Tavaliselt mõtleme me arvust kui ühest väärtusest
  • Objekt koosneb tavaliselt mitmest väärtusest
    • värv, mark jne

Klass

  • Klass kirjeldab ära struktuuri
    • näiteks autol on värv, pikkus jne
  • Klass (üldiselt) ei sisalda andmeid
  • Klass on admetüpp
  • Samatüüpi andmed pärinevad kõik ühest klassist
    • punane auto on auto, roheline auto on auto jne
  • Kuigi meil on maailmas mitu autot(objekti), siis meil on üks auto

OOP

  • Objekt – orienteeritud programmeerimine (OOP) on programmeerimise paradigma , mis kasutab objekte
  • Python on objekti-orienteeritud programmeerimiskeel
  • Pytohnis kõik asjad on objektid

Sõne

  • Sõne on objekt
  • Kui loote uue sõne, siis tegelikult luuakse uus objet, mille tüüp on str.
  • Sõne “funktsioone” kutsutakse meetoditeks
    • ehk siis klassis kirjeldatud funktsioonid on meetodid
s = "Hello"
print(type(s)) # <class 'str'>
print(id(s)) # 30773472
print(id(s.replace("H", "h")) # 61507648
  • Loome sõne “s” ja küsime selle tüübi. Tüüp on str klass
  • id tagastab objekti kohta unikaalse arvu. Kui id on erinev, siis on ka objekt eriev (st mälus erinevas kohas)
  • “replace” teeb uue sõne, seda näeme ka id-ga

List

a = [1, 2, 3]
b = [1, 2, 3]
c = b
print(id(a)) #423560201
a.append(4)
print(id(a)) #423560201
print(id(b)) #634901412
print(id(c)) #634901412
b.pop()
print(id(b)) #634901412
print(id(c)) #634901412

siin on juttu sellest, et kui me loome 2 objekti , nende id on erinevad ja kui me loome muutuja kus osutame “b” objekti, siis “c” muutuja hoiab objekti id “b”. Kui me muudame objekti b, kasutades objekti enda meetodit, siis muutuja “c” ka muudab .

Klass kui admetüüp

  • Iga klass on andmetüüp
  • Näiteks on Pythonis klass str
  • Iga konkreetne sõne, näiteks “tere”, on selle klassi objekt (ehk isend)
  • Ühest klassist saab luua lõpmata palju objekte
  • Objekti kohta öeldakse ka isend ja instants
    • Üldiselt mõeldakse “objekt”, “isend”, “instants” terminitega samu asju