Repetisjon Grunnleggende programmering i Java Monica Strand 28. november 2007 Gr. leggende Java 28. november 2007 1 object class method parameter data type Fundamentale konsepter Gr. leggende Java 28. november 2007 2 Objekter og klasser objekter Representerer ting fra den virkelige verden, eller fra et eller annet problemområdre (eksempel: den store snømannen der borte på fotballbanen ) klasser Representerer alle objekter av en spesiell type (eksempel: snømann ) Gr. leggende Java 28. november 2007 3 1
Metoder og parametre Objekter har handlinger som kan bli anropt (metoder). Metoder kan ha parametre som sender over informasjon som er nødvendig for å gjennomføre handlingen. Gr. leggende Java 28. november 2007 4 Mange instanser kan bli laget av en enkelt klasse. Et objekt har attributter/egenskaper: verdier lagret i felter/variable. Klassen definerer hvilke felter et objekt har, men hvert objekt lagrer sitt eget sett med verdier (tilstanden til objektet). Gr. leggende Java 28. november 2007 5 Tilstand Gr. leggende Java 28. november 2007 6 2
To sirkel objekter Gr. leggende Java 28. november 2007 7 Returverdier Metoder kan returnere resultater via en returverdi. Gr. leggende Java 28. november 2007 8 Konstruktører Konstruktører initialiserer objektet. Samme navn som klassen. Lagrer verdier i feltene. Tar ofte i mot eksterne parametre for å gjøre dette. public Snømann(int antsnøballer, int[] diameter) ant = antsnøballer; this.diameter = diameter; Gr. leggende Java 28. november 2007 9 3
Aksessmetoder Metoder implementerer adferden til objektet. Aksessorene skaffer informasjon om objektet. Metoder har en struktur bestående av en topptekst og innhold. Toppteksten (header) definerer metodens signatur. public int getantsnøballer() Innholdet forteller om metodenes utsagn/kommandoer. Gr. leggende Java 28. november 2007 10 Aksessmetode returtype synlighetsmodifikator public int getprice() return price; metodenavn parameterliste (tom) returnkommando start og slutt på metodeinnholdet (blokk) Gr. leggende Java 28. november 2007 11 Mutatormetode Har en lignende metodestruktur: topptekst og innhold. Brukes for å endre et objekts tilstand. Oppnås ved å endre verdien på en eller flere felter. Inneholder typisk tilordningskommandoer. Mottar ofte parametre. Gr. leggende Java 28. november 2007 12 4
Mutatormetode synlighetsmodifikator returtype metodenavn parameter public void insertmoney(int amount) balance = balance + amount; felt som endres tilordningskommando Gr. leggende Java 28. november 2007 13 Gjøre valg if nøkkelord Boolsk betingelse som skal testes Handling hvis betingelsen er sann if(utfør en test) Utfør disse kommandoene hvis testen gir sant resultat else Utfør disse kommandoen hvis testen gir usant resultat else nøkkelord Handling hvis betingelsen er usann Gr. leggende Java 28. november 2007 14 Lokale variable Felter er en type variable De lagrer verdier gjennom hele levetiden til objektet. De er tilgjengelige fra hele klassen. Metodene kan inkludere mer kort livede variable De eksisterer så lenge metoden blir kjørt. De er kun tilgjengelige inne i metoden. Gr. leggende Java 28. november 2007 15 5
Objekter som lager objekter Gr. leggende Java 28. november 2007 16 Objekter strukturert i samlinger Gr. leggende Java 28. november 2007 17 Legge til et tredje objekt Gr. leggende Java 28. november 2007 18 6
Gjentakelse General form of the for-each loop for nøkkelord Løkke-topptekst for(elementtype element : collection) løkkeinnhold Kommandoer som skal gjentas Pseudokodeuttryk for handlingene I en for-each-løkke For hvert element i en samling, gjør tingene som står i løkkeinnholdet Gr. leggende Java 28. november 2007 19 Eksempel /** * List opp alle notater i en notatbok */ public void listnotes() for(string note : notes) System.out.println(note); for hvert note in notes, skriv ut note Gr. leggende Java 28. november 2007 20 While løkke Generell form for en while-løkke while nøkkelord while(løkkebetingelser) løkkeinnhold boolsk test Kommandoer som skal gjentas Pseudokodeuttrykk for handlingene I en while-løkke Så lenge vi ønsker å fortsette, gjør tingene i løkkeinnholdet Gr. leggende Java 28. november 2007 21 7
While eksempel /** * List opp alle notatene i en notatbok. */ public void listnotes() int index = 0; while(index < notes.size()) size()) System.out.println(notes.get(index)); index++; Tell opp index med 1 Så lenge verdien av index er mindre enn størrelsen på samlingen, skriv ut tekstnoden og tell opp index Gr. leggende Java 28. november 2007 22 For løkke Generell form på en for-løkke for(initialisering; betingelse; etterpå handling) Kommandoer som skal gjentas Tilsvarende i while-løkke-form initialisering; while(betingelse) kommandoer som skal gjentas etterpå handling Gr. leggende Java 28. november 2007 23 For løkke eksempel for-løkke-versjon for(int hour = 0; hour < hourcounts.length; hour++) System.out.println(hour + ": " + hourcounts[hour]); While-løkke-versjon int hour = 0; while(hour < hourcounts.length) System.out.println(hour + ": " + hourcounts[hour]); hour++; Gr. leggende Java 28. november 2007 24 8
Klasser og objekter Nå skal vi lage snømenn og snøborger. Hovedklassen er Snøball Hvilken egenskaper må en snøball ha? Hvilke metoder bør en snøball ha? To klasser arver fra snøballklassen Snømann Snøborg Gr. leggende Java 28. november 2007 25 9