Объектно-ориентированное программирование

Object-oriented programming (OOP)

Objekt

  • Objekt kirjeldab ära konkreetse loogilise kogumi: 1)näiteks õues olev punane auto on üks objekt. 2)selle taga olev roheline auto on teine objekt ja jne.
  • Tavaliselt mõtleme me arvust kui ühest väärtusest (nt 7)
  • Objekt koosneb tavaliselt mitmest väärtusest 1)Värv, mark, mudel, pikkus, registrimass jne.

Klass

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

OPP

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

OOP tehnikad:

  • Kapseldamine (encapsulation) 1)Funktsionaalsus peidetakse
  • Modulaarsus (modularity) 1)Programm jagatakse iseseisvateks tükkideks
  • Polümorfism (polymorphism) 1)Alamklass saab meetodeid üle kirjutada
  • Pärimine (inheritance) 1)Alamklass pärib omadused ja meetodid

Sõne:

  • Sõne on objekt
  • Kui loote uue sõne, siis tegelikult luuakse uus objekt, mille tüüp on str.
  • Sõne ‘funktsioone’ kutsutakse meetoditeks 1)Ehk siis klassis kirjeldatud funktsioonid on meetodid.
  • 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 erinev (st mälus erinevas kohas).
  • Replace teeb uue sõne, seda näeme ka id-ga.
  • Replace on sõne meetod ehk funktsioon, mida saab välja kutsuda objektil

List:

  • Listi muutes id ei muutu
  • c ja b viitavad samale listile


Klass kui andmetüü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
    • Erinevates allikates võivad neil erinevused olla