120 likes | 296 Views
INTRODUKTION TILL PROGRAMMERING. Föreläsning 7 (16.1.2006) INNEHÅLL: Metoder Lokala variabler Mera om klasser: -Nyckelorden public och private -Instansmetoder. Metoder.
E N D
INTRODUKTION TILL PROGRAMMERING Föreläsning 7 (16.1.2006) INNEHÅLL: Metoder Lokala variabler Mera om klasser: -Nyckelorden public och private -Instansmetoder Jonny Karlsson 16.1.2006
Metoder • Brukar i icke objektorienterade programmeringsspråk kallas för ”underprogram”, ”funktioner” (bl.a. i C), eller ”procedurer”. • En metod kan beskrivas som ett ”program i programmet” som utför diverse satser innanför ett block (sammansatt sats). • Metoder används i huvudsak för att man i en programkod inte skall behöva upprepa liknande operationer flere gånger. • Förkortar koden. • Programmet blir mer lättläst Satserna i en metod ”körs” genom att anropa metoden En metod kan anropas flere gånger i ett program Jonny Karlsson 16.1.2006
Metoder En metod lämnar eventullet i från sej utdata och då talar man om att en metod returnerar ett värde. En metod kan även ta emot viss indata. Detta indata ges som argument eller parameter/parametrar till ett metodanrop. Varje metod som används i ett program har ett unikt namn. I Java finns en mängd fördefinierade metoder (t.ex. println(), readLine()) Ett oänligt antal metoder kan även skapas av programmeraren själv Jonny Karlsson 16.1.2006
Att skapa metoder En metod skapas/deklareras enligt följande: returtyp metodNamn(arg1, arg2, arg3, ..., argN) { satser ... } Returtypen är antingen en datatyp (t.ex. int, float, String.....) eller voidvilket betyder att inget värde returneras. Argumenten är likaså datatyper och antalet kan bli oändligt många. Om metoden inte skall ta emot något argument sätter man void i argumentfältet eller lämnar det tomt. Metodnamnet börjar vanligen med liten bokstav och ifall metoden består av flera ord skrivs varje nytt ord med stor bokstav. (smaksak, ingen nödvändighet) Jonny Karlsson 16.1.2006
Returnering av värden Nyckelordet returnanvänds för att returnera ett värde från en metod. Exempel: int dubbla(int heltal) { return heltal*2; } Metoden ovan, kallad ”dubbla”, tar emot ett heltal som argument och returnerar ett heltal som är det dubbla värdet av argumentet. Jonny Karlsson 16.1.2006
Metodanrop En skapad metod kan anropas från en annan del av programmet. En metod anropas enligt följande: metodnamn(argument1, argument2, ....); Om metoden har argument skall man också ge argument till metodanropet (i annat fall lämnas argumentfältet tomt). Om metoden returnerar ett värde resulterar metodanropet i ett värde, eller m.a.o. metodanropet får det värde metoden returnerar. Jonny Karlsson 16.1.2006
Metoder: sammanfattande exempel public metodExempel { static int max(int tal1, int tal2) { if(tal1 > tal2) return tal1; else return tal2; } public static void main(String args[]) { int returvarde, heltal1 = 2, heltal2 = 3; returvarde = max(heltal1, heltal2); System.out.println(returvarde); //skriver ut värdet 3 på skärmen //eller System.out.println(max(heltal1, heltal2)); //skriver ut värdet 3 på skärmen } } Jonny Karlsson 16.1.2006
Lokala variabler Varabler deklarerade i metoder kallas lokala variabler. Lokala variabler är ej bekanta (åtkomliga/synlaga) från andra metoder. Observera således att heltalsvariablerna: returvarde, heltal1 och heltal2 är obekanta i metetoden dubbla i exemplet på föregående sida. Jonny Karlsson 16.1.2006
Mera om klasser: nyckelorden public och private En klass kan vara deklarerad som public(offentlig). Detta betyder att klassen kan användas från en annan klass. Även instansvariabler kan vara deklarerade som public. Sådana instansvariabler kan tilldelas värden och avläsas från andra klasser. Instansvariabler blir vid deklaration automatiskt public. Exempel: public class bil { public int arsModell; public String farg; } Jonny Karlsson 16.1.2006
Mera om klasser: nyckelorden public och private Instansvariabler kan även vara deklarerade som private. Sådana instansvariabler kan INTE tilldelas värden eller avläsas från andra klasser. Exempel: public class bil { private int arsModell; private String farg; } Användning av privata instanvariabler i Java är vanligt eftersom man ofta vill undvika att insansvariabler skall kunna manipuleras utanför klassen. Private instansvariabler brukar även kallas för inkaplslade instansvariabler. Jonny Karlsson 16.1.2006
Klasser och instansmetoder Som redan tidigare nämnts i Föreläsning 6, kan klasser innehålla förutom instansvariabler även instansmetoder. En instansmetod är helt enkelt en metod som deklarerats inne i en klass. Instansmetoder används bl.a. för att göra det möjligt att kunna läsa värden från och tilldela värden till privata instansvaribler från andra klasser. Se exempel på följande sida: Jonny Karlsson 16.1.2006
Klasser och instansmetoder class bil { private int arsmodell = 1999; public int getArsmodell() { return arsmodell; } } public huvuklass { public static void main(String args[]) { bil b = new bil(); System.out.println(b.arsmodell); //detta går ej System.out.println(b.getArsmodell); //skriver ut 1999 på bildskärmen } } Jonny Karlsson 16.1.2006