Objektorienteret programmering: Forskelle mellem versioner
Content deleted Content added
EmausBot (diskussion | bidrag) m r2.6.4) (Robot tilføjer my:အော့ဗ်ဂျက် အိုရီယင့်တက် ပရိုဂရမ်းမင်း |
Pkj61 (diskussion | bidrag) Redigeret en del i afsnittet om Princippet (lagt de tre følgende afsnit ind som underafsnit) |
||
Linje 2:
== Princippet ==
Idéen bag objektorienteret [[programmering]] er at opdele programkoden i [[
Der findes tre grundprincipper i objektorienteret programmering:
:1. Indkapsling
:2. Nedarvning
:3. Polymorfi
=== Indkapsling ===
Et objekt indkapsler nogle data og noget funktionalitet (adfærd/opførsel). Objektet skal stille en [[Grænseflade (datalogi)|grænseflade]] (eng. ''interface'') til rådighed for andre objekter, der så gennem grænsefladen kan få objektet til at udføre en bestemt opgave. Andre dele af programmet skal kun have kendskab til, hvilken opgave objektet udfører, men ikke, hvordan opgaven udføres, eller hvordan eventuelle data repræsenteres i klassen.
== Nedarvning ==▼
Eksempelvis kan en klasse <tt>Begivenhed</tt> indeholde data om et ''tidspunkt''. I grænsefladen defineres, hvordan andre objekter kan manipulere med dette tidspunkt, f.eks. flytte en given <tt>Begivenhed</tt> en uge frem, uden at kende til, hvordan tidspunktet er repræsenteret internt i klassen.
▲=== Nedarvning ===
Et objekt kan arve data og funktionalitet fra et andet objekt og udvide dem med ekstra data og funktionalitet. Eksempelvis kan en klasse <tt>Fødsel</tt> nedarve ''tidspunkt'' fra <tt>Begivenhed</tt>, men herudover udvides med oplysninger om ''person'' eller ''sted'' samt en grænseflade, der kan manipulere med disse ekstra data. Et objekt af typen <tt>Fødsel</tt> vil således samtidig være af typen <tt>Begivenhed</tt>. I dette tilfælde siges <tt>Begivenhed</tt> at være "superklasse" for <tt>Fødsel</tt>.
Et andet eksempel kan være et objekt af typen <tt>Køretøj</tt> med data som ''hjul'', ''farve'' mm. og funktionalitet som ''kør'' og ''brems''. Objekter af typen <tt>Bil</tt> eller <tt>Cykel</tt> kan begge være en nedarvning af <tt>Køretøj</tt> og arve dennes egenskaber.
=== Polymorfi ===
I objektorientering betyder polymorfi, at to klasser kan have samme grænseflade defineret via nedarvning, men udføre dem forskelligt. En <tt>Cykel</tt> kan arve funktionaliteten ''brems'' fra <tt>Køretøj</tt>, dvs. udføre opgaven, sådan som den er defineret i superklassen, men kan også have defineret sin egen måde at udføre opgaven på. Herved siges <tt>Bil</tt> at "overskrive" <tt>Køretøj</tt> mht. denne funktionalitet.
==
En meget vigtig del af objektorientering er at forstå, at den problemstilling man står overfor er der sikkert andre, der har prøvet før.
|