Arvutiteaduse instituut
  1. Esileht
  2. Teeme ise arvutimänge
EN
Logi sisse

Teeme ise arvutimänge

  • Esileht
  • I RAAMAT
  • II RAAMAT
  • III RAAMAT
  • IV RAAMAT
    • Funktsioonid
      • Funktsiooni välja kutsumine
      • Funktsiooni argumendid
      • Funktsiooni töö tulemuse tagastamine
      • Lokaalsed ja globaalsed muutujad
    • Objektid
      • Objekti loomine
      • Objekti algväärtustamine
      • self
      • Miks on objektid head?
      • Näide
    • Mida õppisid?
  • V RAAMAT
  • VI RAAMAT

Objektid

Juba teist nädalat vaatame erinevaid võimalusi kuidas organiseerida andmeid ja koodilõike oma programmis. Sarnaseid muutujaid saime ühte punti siduda listide abil, koodijuppe funktsioonide abil.

Objektide mängu toomine on aga samm veel kaugemale. Objektide abil saab ühise nime alla liigitada nii funktsioone kui muutujaid koos. Objektid on programmeerimise maastikul väga levinud idee ja seda kasutatakse väga paljudes erinevates programmeerimiskeeltes. Nii et kui oled ühe korra ideest aru saanud, saad hakkama mistahes teise objekt-orienteeritud programmeerimiskeelega samuti.

Miks objektidest rääkida?

Kui me nüüd objektide teemaga edasi läheme, siis mõistad, miks Pythonit nimetatakse objekt-orienteeritud keeleks - siin on kõik asjad objektide alla kuuluvad, kuigi kohe alguses ei pruugi sellest arugi saada. Siiamaani polegi meie ülesannetes ühtegi kohe arusaadavat objekti ette jäänud, kuid järgmine nädal hakkame põhjalikumalt tegelema graafikaga, siis ilma objekti mõiste tundmiseta nii kergesti hakkama ei saa. Seega olgu antud peatükk sissejuhatuseks järgmisesse nädalasse.

Mis on objekt?

Võtame ühe konkreetse lihtsa näite: raamat. Me võime raamatut vaadata kui objekti. Mida see tähendab?

  • Me saame objektiga raamat teha iga kord mingeid tegevusi - näiteks lugeda, kinkida, riiulisse panna, kinni panna, lahti teha jne.
  • Me saame kirjeldada selle objekti omadusi - lehekülgede arv, paksud või õhukesed kaaned, mõõtmed, kuju, kirjastus, pealkiri, žanr jne.

Programmeerimises tehakse objektidega täpselt samu asju - tegevused, mida objektiga saab teha ja objekti kirjeldus. Pythonis kutsutakse andmeid, mida sa objekti kohta tead, atribuutideks ning tegevusi, mida sa objektiga saad teha, meetoditeks.

Objekt = atribuudid + meetodid

Näiteks kui me oleksime Pythonis loonud objekti raamat, siis raamatul võiksid olla

  • sellised atribuudid: raamat.lk_arv, raamat.suurus, raamat.kuju jne.
  • ning sellised meetodid: raamat.lugemine(), raamat.avamine(), raamat.sulgemine() jne.

Panid tähele erinevust ja seda punkti kasutamise asja? Tuleta meelde, me oleme ju objektidest teadmata neid võtteid näidetes kasutanud küll ja küll. Näiteks ajamõõtmise programm, kus kasutasime time.sleep()-i või listidesse andmete juurde panemise juures linnad.append(). Seega nii time kui linnad on Pythoni jaoks objektid ja punktiga taga olev käsk selle objekti meetod.

Atribuutideks saavad olla kõiksugused muutujad ja nende loetelud (arvud, kirjeldused, listid jne) ning meetoditeks on tavalised funktsioonid ja need kuuluvad ainult sellele konkreetsele objektile. Atribuudid on informatsioon objekti kohta ja meetodid on tegevus objektiga.

Atribuudid ei ole mitte mingil moel teistsugused kui tavalised muutujad, nendele omistatakse väärtuseid täpselt sama moodi ja neid kasutatakse koodis täpselt sama moodi kui tavalisi muutujaid, millega me juba harjunud oleme. Ainuke erinevus on selles, et atribuuti kasutatakse alati objekti nimega koos ja need on ühendatud punktiga.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused