Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.

Liknende presentasjoner


Presentasjon om: "Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen."— Utskrift av presentasjonen:

1 Objekt, Instanser og referanser + litt til

2 Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen Person.  En instans må komme fra en klasse, mens et objekt kan være hvasomhelst. Vi trenger ikke å vite definisjonen på en ting for at det skal være et objekt.

3 Variabler  Referanser  Er egentlig referanser  Variabel deklarasjonen forteller hvaslags objekt/instans variabelen refererer til bilenMin bilenTilPetter

4 Deklarering av referanser/variabler  I begynnelsen av klasser: public class Bil{ public int antallhjul; //Gjeldende i klassen }  I metoder: public void kjor(){ float fart = 23,5; //Gjeldende i metoden etter at de er definert }  Som argumenter: public void gir(int nyttGir){ //Gjeldende i metoden }

5 2 typer referanser 1. Referanse til en datatype (int, long, float, double, char, boolean):  public int tall;  public float desimaltall; 2. Referanse til en instans av en klasse (Alle med stor bokstav):  public String setning;  public ArrayList lenketListe;

6 Referanser i argumenter  Referanser av type en blir ikke endret av å bli endret inni en metode.  Referanser av type to som gies som argument forblir endret etter at metoden er ferdig.

7 Eksempel på referanser teller = 2 nyTeller = 3 teller = 2 int teller = 2; int nyTeller = leggTilEn(teller); //etter at metoden har kjørt er variabelen fremdeles 2 public int leggTilEn(int tall){ tall++; return tall; } Her sendes en datatype inn i metoden

8 Et eksempel til Bil minBil = new Bil(”rosa”); minBil.farge = ”grønn”; Bil nyBil = skiftFarge(minBil); public void skiftFarge(Bil bilenSomSkalMales){ bilenSomSkalMales.farge = ”rød”; } Variablenes tilstand: minBil.farge = ”grønn” nyBil.farge = ”rød” minBil.farge = ”rød” Her sendes en objekt/instans referanse inn i metoden

9 Spørsmål1:  Hvordan kan man deklarere en variabel?  Og hvor kan man bruke den etterpå?  Hva er en referanse?  Hvilke to typer referanser finnes det?  Kan ett argument være av typen void?  Og hvorfor ikke?

10 Null  Reservert ord  Hvis man setter en variabel lik null betyr det at den ikke referer til noe lengre.  public String ingenting = null;

11 This  Reservert ord  Kan brukes for å referere til seg selv  Kan brukes til å skille mellom argumentnavn og variabelnavn

12 Eksempel 2: public class Flaske{ private float volum; public void drikkFra(float volum){ this.volum = volum; }

13 Spørsmål 2:  Når bruker man null?  Hvorfor har man ikke ”” rundt null?  Hva referer this til?  Hvordan kan man unngå å bruke this i metoder?  Når må man allikevel bruke this?

14 Ikke static  Ingen av de metodene vi har brukt til nå er static. Det vil si at det ikke er noe static ord mellom public/private og returtypen.  Det vil også si at variablene og metodene hører til i instanser av klassen.

15 Static  Betyr at variabelen eller metoden hører til klassen. Ikke static :Bil nyBil = new Bil(); nyBil.kjor(); static: Bil.hentAntallBiler();

16 Et eksempel public class Person{ public static int antall = 0; public static int antallPersoner(){ return antall; } } TIPS: Metoder som operer rett på static variabler må også være static.

17 Spørsmål 3:  Hva er forskjell på en variabel som er static og en som ikke er det?  Når vil det være naturlig å bruke en static metode?  Når vil det være naturlig å bruke en static variabel?  Hvor kan man plassere ordet static?

18 public class Garasje{ private Bil parkertBil; public Garasje(){ parkertBil = null; } public void kjorInnBil(Bil nyBil){ parkertBil = nyBil; } public Bil kjorUtBil(){ Bil paaVeiUt = parkertBil; parkertBil = null; return paaVeiUt; }

19 public class Bil{ public Garasje bilensGarasje; public String bilmerke; public int antallHjul; public static int antallBiler = 0; public Bil(String bilmerke, int nyttAntallHjul){ this.bilmerke = bilmerke; antallHjul = nyttAntallHjul; antallBiler++; } public void parker(Garasje nermesteGarasje){ nermesteGarasje.kjorInnBil(this); bilensGarasje = nermesteGarasje; }

20 public static void main(String[] args){ //Dette er det samme som å lage en ny instans i BlueJ Bil minBil = new Bil("Toyota",4); //Siden dette er en ny fin bil trenger den garasje Garasje nybygdGarasje= new Garasje(); //Nå er det på tide å sette bilen inn i garasjen minBil.parker(nybygdGarasje); }

21 Flere løkker  for(initialiering;test;økning av tellevariabel)  for(int i=0;i<10;i++){ her kommer koden }  do{ her kommer koden }while(test);


Laste ned ppt "Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen."

Liknende presentasjoner


Annonser fra Google