Objekt-orienteeritud programmeerimine (OOP)


objekt

| { | “ago” | “kati” |
| “name :” | | |
class | id-code : | | |
| phone : | | |
| } | | |

/

[“ago”, “kati”]
[111, 112]
.
.
.
[…, …,]

Objekt

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

Klass

  • Klass kirjeldab ära struktuuri
    • näiteks autol on värv, pikkus jne
  • Klass (üldiselt) ei sisalda andmeid
  • Klass on andmetüüp
  • 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 auto

OOP

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

OOP tehnikad

  • Kapseldamine
    • funktsionaalsus peidetakse
  • Modulaarsus
    • programm jagatakse iseseisvateks tükkideks
  • Polümorfism
    • alamklass saab meetodeid üle kirjutada
  • Pärimine
    • alamklass pärib omadused ja meetodid
  • Abstraktsioon
    • aitab luua klassi, kasutatakse tarbetu teabe peitmiseks ja ainult vajaliku teabe kuvamiseks suhtlevatele kasutajatele

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
s = "Hello"
print(type(s)) # <class 'str'>
print(id(s)) 
print(id (s.replace("H", "h")))
  • 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

List

a = [1, 2, 3]
b = [1, 2, 3]
c = b
print(id(a))   # 44058024
a.append(4)
print(id(a))   # 44058024 still the same
print(id(b))   # 44059184
print(id(c))   # 44059184 - same as b
b.pop()
print(id(b))   # 44059184 - still the same
print(id(c))   # 44059184 - and same

Veel objekte

print(type(1))     # <class 'int'>
print(type(True))  # <class 'bool'>
print(type(1.2))   # <class 'float'>
print(type(None))  # <class 'NoneType'>
print(type(len))   # <class 'builtin_function_or_method'>
print(type(type))  # <class 'type'>

Comments

Lisa kommentaar

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga