Objektorientering
Abstraktion Process som bygger på att känna igen och fokusera på viktiga karakteristika hos objekt eller i en situation. Förmågan att kunna filtrera bort eller bortse från oviktiga detaljer. Inte belasta informationsprocessande system, lägre kognitiv belastning (work load)
Kartor Topografisk, ekonomisk, klimatkarta, bilkarta, orienteringskarta,…. Verkligheten
Hus Drag - detaljer
Generalisering Vid en viss abstraktionsnivå får vi ett slags generiskt objekt Cell (cellkropp, nucleus, membran)
Klassifikation Taxonomi, perspektivberoende Trädstruktur
Klassifikation Träd kan uppdelas i t.ex. Lövträd och Barrträd Lövträd kan delas upp i t.ex. Björk och Ek Björkar kan delas upp i t.ex. Glasbjörk, Vårtbjörk, Hängbjörk och Fjällbjörk
Klassifikation Vetenskaplig uppdelning i djur-, växt- och mineralrike Djur – Levande, spontan rörelse, snabb motorisk reaktion på stimuli Växt – Levande, saknar nervsystem, cellulosa i cellväggar
Abstraktionshierarki I sin helhet eller en del
Definition av fågel Har fjädrar Har vingar Lägger ägg Kan flyga
Kategorisering Rätt mängd regler Inte för generell Inte för restriktiv Inga överflödiga saker
Kontext Abstraktion och kategorisering beror på situation Olika lösningar beroende på detta
Reuse Precis som vi har återanvändning på låg nivå där vi återanvänder en stack eller en kö så kan vi ha detta på högre abstraktionsnivåer också. Algoritmer
Objekt Objekt är miniatyrabstraktioner av objekt i den riktiga världen. En definition: Något materiellt som kan uppfattas av våra sinnen. Något mentalt eller fysiskt som tankar, känslor och handlingar kan riktas mot.
Fysiska objekt, exempel Studenter (ni) Lärare (jag) Stolar Bord Tamburmajor Rummet Huset
Konceptuella objekt TSB, den här kursen Institutionen för DV KV-programmet Betyg
Mjukvaruobjekt ”Ett objekt är en mjukvarukonstruktion som sammanfogar data (tillstånd) och funktioner (beteende) vilket sammantaget representerar en abstraktion av ett fysiskt eller konceptuellt objekt från den riktiga världen.”
Data Student namn personnummer adress vilka kurser studenten är inskriven på, har läst betyg
Data Kurs kurskod anmälningskod kursnamn förkunskapskrav lärare
Attribut Formellt kallas de data som används för att beskriva ett objekt för attribut (synonym till egenskap).
Tillstånd Ett objekts sammantagna attribut sägs beskriva objektets tillstånd.
Beteende En student kan: skriva in sig på en kurs hoppa av en kurs välja en inriktning välja en handledare tala om vilka kurser han/hon läst
Beteende En kurs kan: tillåta en student att bli antagen avgöra om en student är registrerad säga vilka förkunskapskrav som finns
Beteende är Ett objekts operationer (beteende) är vad det gör för att komma åt sina attribut och vad det gör för att modifiera och underhålla sina attribut.
Attribut - operationer Vi kan se att attribut och operationer hänger ihop. Operationerna används för att kontrollera eller förändra attribut.
Operationer - Metoder I OOP används benämningen metoder. De är uppdelade i: konstruktor som skapar instanser selektor som returnerar information om objektets tillstånd mutator som ändrar objektets tillstånd iterator går igenom en kollektion av element, returnerar ett objekt och fortsätter med nästa övriga gör något
Metoder Skall bara tillhöra en kategori
Metoder Kan ses som en uppsättning tjänster som ett objekt tillhandahåller.
Klasser En klass är en abstraktion som beskriver gemensamma särdrag hos alla medlemmar i en grupp liknande objekt.
Klasser En klass definierar: datastrukturen (namn & typer av attribut) operationer (metoder)
Student - attribut namn – String personnummer – int[] adress – String inskrivningsdatum – Date antal poäng - int
Student - metoder registrera på kurs – registerForCourse hoppa av kurs - dropCourse
Klass Definition av klassen kan ses som en mall för att skapa objekt. Pepparkakor Shapes (exempel från Javaboken)
Instans Man instansierar objekt utifrån en klass. Instans = förekomst