OOP1-repetition Flashcards
Vad är skillnad mellan Compile-time-typ
och
Run-time-typ
Compile-time-typ
* Vilka medlemmar vi kan nå
* Ispetsen av ett isberg är som ett objekts compile-time-typ - vad kompilatorn ‘ser’.
Run-time-typ
* Vilken implementation som körs
* Under ytan döljer sig run-time-typen - objektets faktiska typ.
Förklara vad ett objekt är
Objekt = Instans
Om ett objekt är som en robot så är en instansmetod som knapparna på våra kontroller
Dvs. Objekt:
- Som små agenter/robotar
- Modellerar verkliga eller abstrakta ting
- Kontrakt/överenskommelser som kanske inte finns
- Poängen med det är:
- Blanda data och beteende(state & behaviour)
- Den beter sig I relation till sitt “state”
Beteende: Metoder såsom Drive()
Data: attribut, färg etc.
Vad menas med “instansmetoder exekveras i kontexten av objektet?”
Fältets värde är unikt per objekt så exekveras en metod i kontexten av objektet
ex. Om vi har 2 cars(objekt) med olika färg och vi kör en metod som printar färgen så printas respektive färg. För att metoden implementeras i kontexten av instansen.
Implementationen av ett gränssnitt/interface är en is-a eller has-a relation?
Interface representerar en is-a relation.
När en klass implementerar ett gränssnitt innebär det att klassen lovar att den uppfyller vissa kontrakt eller funktioner som definieras av gränssnittet.
Ex. Gränssnittet IFlyable.
- Om en klass som heter Bird implementerar detta gränssnitt, säger vi att “Bird is-a IFlyable”. Det betyder att Bird lovar att den kan utföra alla handlingar eller metoder som definieras av IFlyable gränssnittet.