Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel



Relevanta dokument
Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

PROV. 10 Uppräknade datatyper

7 GRUNDERNA I PROGRAMMERING

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Kommentarer till Person

Bildanalys. Introduktion

Roboten Karel lär sig Java

Möjlighet att leva som andra

Skapa din egen kanal på Youtube

Snabbguide: Användning av filsamling / resources i Mondo

När man använder någon annans text

Individuell plan enligt Lag (1993:387) om stöd och service till vissa funktionshindrade (LSS)

Förtroendevalda. SSU:s Klubbmaterial Aktiviteter demokrati och ekonomi aktiva förtroendevalda medlemmar.

Frågor och svar om arbetad tid och blanketten Tidsredovisning (FK 3059)

Svara på remiss hur och varför

Konsekvensanalyser för pensionsstiftelser

Kort med frågor kopplade till filmen

Psykologi A Moment 3 Behov och känslor. Vilka behov behöver jag tillfredställa för att känna att jag bubblar av lycka?

Om vi vill fortsätta att spela en roll i framtiden måste vi göra två saker: Bli ännu bättre på det vi är bra på nämligen lärandet.

Föreläsning 4: for, while, do-while

Foto: Sara Frid. Lärmiljön i Enköpings förskolor/pedagogisk omsorg samt arbetsgång för barn i behov av särskilt stöd. Skolkontoret

Benämningar och attityder

ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH 1000

Den femte disciplinen Den lärande organisationens konst

TITEL. Johannes Hedberggymnasiet. Laborantens namn: Medlaboranters namn: Klass: Skola: Påbörjad: Inlämnad:

Hur många registreringsskyltar finns det som inte innehåller samma tecken mer än en

JÄMSTÄLLDHET INOM IDROTTEN. Lärgruppsplan

Hjälp! Mina föräldrar ska skiljas!

Transkript:

Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans objektets tillstånd Ett objekt har sätt på vilket man kan använda det, kallas för objektets beteende Vad är ett objekt? Exempel En boll har flera egenskaper Storlek Färg Hur bra den studsar En boll har även sätt hur man använder den Man kan studsa en boll Man kan kasta en boll Man kan sparka en boll Tillstånd och beteende Attributen och ett objekts beteende samverkar Hur högt man kan studsa en boll beror på dess elasticitet Genom att kasta en boll ändrar man dess position Varje objekt har sitt eget tillstånd Ingen boll är den andra lik, alla är unika Men alla bollar kan kastas, rullas osv.

Vad är ett objekt? Alla dessa tankesätt kan man använda inom mjukvarusystem Man bygger upp ett program/system av olika objekt som på ett fördefinierat sätt interagerar med varandra Ger upphov till objektorienterad programmering (OO eller OOP) Modellera en boll public class Boll{ private String färg; private int diameter; private static int antal; public Boll(String ifärg, int idiameter){ färg=ifärg; diameter=idiameter; antal++; public void kasta(){ System.out.println("Bollen kastades"); public static int hämtaantal(){ return(antal); Klasser och objekt Klassen fungerar som en ritning för objektet Genom att instansiera ett objekt fyller man ritningen med de värden som är specifika för just det objektet Klasser och objekt Exempel Alla dubletter (på Professorsvägen) ser likadana ut Garderoberna står på samma ställe Badrummet ligger på ett visst ställe Alla köken är utrustade likadant Ändå är de olika Det bor olika människor i dem Olika inredning Alltså: Ritningen är lika, men innehållet skiljer sig

Instansiera ett objekt Man instansierar ett objekt genom nyckelordet new public class BollKast { public static void main(string [] argv){ Boll bollen = new Boll("Gul", 18); bollen.kasta(); Jämför med hur man skapar arrayer (new int[10]) Konstruktorn är den "metod" som körs då ett objekt skapas Dess syfte är att initialisera objektet, dvs att fylla det med innehåll Konstruktorn är deklarerad public och saknar returtyp En klass kan innehålla flera konstruktorer Har man inte skrivit någon konstruktor tillhandahåller Java en, defaultkonstruktorn Tar inga argument Skriver man en egen konstruktor finns inte defaultkonstruktorn tillgänglig Namnet på konstruktorn är samma som klassen Instansvariabler Instansvariablerna beskriver objektets tillstånd Färg, storlek, position t.ex. Instansvariabler är deklarerade med private Innebär att de endast koms åt av det egna objektet Instansvariablerna sägs vara inkapslade i objektet

Instansmetoder Instansmetoderna kan sägas styra objektets beteende De är deklarerade med public, men utan static Syftet med instansmetoderna är att beskriva det enda sätt som objektet kan användas på Man kan säga att instansmetoderna är skrivna på objektet Klassvariabler Klassvariabel kallas en variabel som delas av alla objekt skapade från samma klass Beskriver ett tillstånd som alla objekten delar, dvs klassens tillstånd Deklarerade med static Klassmetoder En klassmetod är en metod som beskriver beteendet hos en hel klass, dvs alla objekt som är skapade från en viss klass Klassmetoder deklareras med static Klassmetoder anropas med klassens namn som syftning Boll.hämtaAntal() (jfr. Integer.parseInt("42")) Inkapslingsprincipen Instansvariabler deklareras med private för att ingen annan klass ska kunna komma åt dem Gör att en klass endast kan användas via de publika metoderna Innebär att en klass endast används på det sätt som dess skapare tänkt En klass kan ha privata metoder, men de koms inte åt utifrån

Syftningsoperatorn. Syftningsoperatorn betcknas med en punkt. Dess syfte är att visa vilket objekt ett visst anrop är knutet till boll1.kasta(); boll2.kasta(); Generellt: <objekt>.<metod> eller <objekt>.<variabel> <metod>/<variabel> måste vara deklarerade som public Private, public, static... va? Public betyder att metoden eller variabeln kan användas från alla andra klasser Private betyder att metoden eller variablen endast kan användas i den egna klassen Static ett nyckelord som betyder att metoden eller variabeln delas mellan alla objekt från samma klass Public, private, static... protected va? Protected är ett nyckelord som kan användas på samma sätt som public och private En variabel eller metod som är deklarerad som protected innebär att den endast kan användas av klasser i samma paket Överkurs Protected har även en speciell innebörd vid arv Föreläsning 7 Nästa föreläsning Arv - utökning Överskuggning (overriding) JFG: kap. 31-33 JSS: 7.1-4 CSUJ: 12.1-3