IS-102 Klassedefinisjoner
Klasser og objekter – Hva vet vi? Vi kan bruke klassene til å lage objekter. Et objekt som er laget med en bestemt klasse tilhører klassen. Objektene har verdier knyttet til seg som kalles attributter (attributes, instance variables, properties) Objektene kan utføre bestemte handlinger ved hjelp av metoder (method, procedure, function) Objekter som tilhører samme klasse har de samme attributtene og metodene. Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner
Grammatikk og konvensjoner Et java-program må følge grammatikkreglene for java for at kompilatoren skal godta det Et program som bryter grammatikken er ikke et gyldig program Konvensjoner er regler som vi følger for å gjøre programmet mer leselig for mennesker (f.eks. de som skal utvide det, eller rette feil senere) Vi har bl.a. konvensjoner for navngiving og bruk av innrykk Et program kan fungere selv om vi bryter konvensjonene, men det blir vanskeligere å lese, så sjansen for at det oppstår feil under vedlikehold blir større Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner
Klassedefinisjoner Hver klasse har en definisjon Definisjonen finnes i en fil som heter KlasseNavn.java Klasser har navn som begynner med stor bokstav. Java-filen er en tekstfil, ikke et ferdig program: En kompilator er et program som oversetter java-filer til kjørbar (binær)kode. I BlueJ kan vi kjøre kompilatoren ved å trykke “Compile” knappen. Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner
Klassedefinisjoner – innhold i KlasseNavn.java public class KlasseNavn { // definisjon av attributter // definisjon av konstruktører // definisjon av metoder } Klassedefinisjonen begynner med public class KlasseNavn {, og slutter med } Klassedefinisjonen inneholder definisjoner av attributter, konstruktører og metoder Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner
Definisjon av attributter Attributter er et sted vi kan lagre verdier Hvert objekt (instans) som tilhører klassen får sine egne kopier av attributtene det er derfor de også kalles instansvariable Attributter defineres slik: private int attributtNavn; private/public bestemmer om attributt er tilgjengelig utenfor klassen int bestemmer hva slag verdi som kan lagres i attributtet et attributt kan bare ha verdier av en bestemt type (i dette tilfellet heltall) navnet bruker vi til å få tak i eller endre verdien til attributtet. attributter har navn med liten forbokstav (hvis navnet består av flere ord har alle unntatt det første stor forbokstav) Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner
Datatyper Når vi programmerer skiller vi mellom forskjellige typer av verdier. Alle mulige verdier tilhører (minst) en type. Alle typene har navn. Eksempler: int – heltall, f.eks. 42 float, double – desimaltall, f.eks. 3.14 char – bokstaver og andre tegn, f.eks. 'a' boolean – logiske verdier, true eller false String – tekst, f.eks. "black" Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner
Objekter og attributter Tilstanden til et objekt er bestemt av verdien til attributtene. I BlueJ kan vi se tilstanden til et objekt ved å høyreklikke objektet og velge “Inspect” Even Åby Larsen (even.larsen@uia.no) IS-102 Klassedefinisjoner