Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Forestill deg en app for håndtering og avspilling av musikk. Når du bruker app'en vil den vite om alle sangene (eller låtene/stykkene/sporene...), albumene (eller cd'ene/lp'ene...), artistene (eller gruppene/orkestrene...) og spillelistene. Hver av disse kan representeres som objekter, altså sang-objekter, album-objekter og spilleliste-objekter. Hvert sang-objekt vil vite navnet på sangen, lengden, lyddataene som må spilles av og hvilket album det tilhører. Hvert album-objekt vil vite hvilke sanger det inneholder, hvem som har skrevet (komponist) og hvem som fremfører (artist) sangene (kanskje vil også sang-objektene inneholde informasjon om komponist og artist, siden de jo kan varierer på samme album). Sang- og album-klassene, på den annen side, kan ses på som (koden som bestemmer) reglene for hvilken informasjon hva slags type data hvert sang- og albummalbum-objekt inneholder kan inneholde og hvordan disse håndteres, f.eks. at ett og samme sang-objekt ikke kan tilhøre mer enn ett album-objekt. Koden Klassen må også sørge for at koblingen mellom sanger sang-objekter og album-objekter er konsistent, slik at det altid er slik at et sang-objektet objekt ligger i sang-lista til albumet det tilhører.

Sang-objektSang-klasse

Konkret Konkrete data om bestemt sang:

  • Tittel: Imagine
  • Artist: John Lennon
  • Lyddata: 011011...

Kan gjøre følgende beregninger/operasjoner på sine data

  • setTitle
  • play

Beskriver strukturen til alle Sang-objekter:

  • Tittel: tekst
  • Artist: referanse til Person-objekt
  • Lyddata: binære tall

BeregningerKode for beregninger/operasjoner

  • setTitle - endrer tittel
  • play - spiller av lyd-dataene

Oppdelingen av i tilstanden til det kjørende programmet i objekter og av programkoden i klasser bestemmes av programmereren. Det er ofte ønskelig at strukturen av objekter tilsvarer/speiler vår oppfatning av virkeligheten, slik at strukturen av objekter/kode blir lettere å tenke ut/skrive og forstå/lese. Derfor er det viktig å være godt kjent med problemområdet før en setter seg ned og programmerer, i tillegg til at en kan generelle kodingsteknikker (se fotnote 1).  

...