Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertUlrik Borge Endret for 8 år siden
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);
Liknende presentasjoner
© 2023 SlidePlayer.no Inc.
All rights reserved.