Nyckelord: metoder, void, anropa metod, inparameter, top-down programmering
Det här kapitlet kommer gå igenom metoder (engelska: methods) i Java som är ett sätt att återanvända och strukturera vår kod. Kapitlet om metoder kommer visa varför vi bör använda metoder och har man faktiskt går tillväga för att skapa och använda dom. Kapitlet avslutas med ett längre exempel som visar hur vi kan använda oss av flera olika metoder då vi bygger upp våra program.
Vid programmering är det vanligt att man vill återanvända sin kod flera gånger och strukturera den i flera delar. Till vår hjälp för att göra det har vi metoder. Genom att skapa flera små metoder i Java, kan dessa användas för att sammankopplas till stora program.
Detta kapitel innehåller följande artiklar där vi först ska lära oss vad en metod i Java faktiskt är för någonting, för att sedan gå vidare och skapa och anropa en rad olika metoder med ett längre exempel där vi kopplar samman flera olika metoder och bygger ihop ett program. Avslutningsvis så kommer vi även titta närmare på vad som menas med rekursiva metoder och vad det innebär att en metod anropar en annan metod.
En metod i Java utför ett kodblock, med andra ord, en sekvens av operationer, varje gång man använder metoden. Att använda en metod kallas att man anropar metoden, och det som blir resultatet av det anropet kallas för det som metoden returnerar. Metoder i Java är ett användbart och kraftfullt verktyg eftersom metoder är helt oberoende av annan kan kod och kan anropas från flera olika klasser.
Du kan tänka dig en metod som en svart låda. Först skickar du in ett eller flera värden i lådan och får sedan tillbaka ett annat, men du behöver inte veta vad som faktiskt händer i lådan. Med andra ord, du behöver inte veta hur koden är programmerad som genererar output av input. Det viktiga är att du vet vad som händer när man anropar metoden. Detta abstraherar programmet och skapar ett mer kompakt program.
En stor fördel med metoder i Java är att du inte behöver skriva samma kod flera gånger. Du kan istället anropa en metod. Metoder är ett kraftfullt verktyg eftersom de är helt oberoende av annan kod. En metod kan dessutom anropa en annan metod. Användningsområdena för en metod i Java är många och de hjälper till att strukturera upp och förenkla programmen vi skapar.
En metod i Java:
En metod i Java utför en sekvens, ett block av operationer när man anropar på den.
En metod i Java kan fungera på ett par olika sätt. Dels så kan man välja om metoden ska ta in information, med andra ord, om metoden ska ta någon input. Men också vad som ska komma ut från metoden, helt enkelt, vad ska metoden returnera och vad blir resultatet när vi använder metoden, Generellt sett kan man säga att vi behöver ange två saker när vi skapar metoden:
Om vi ritar upp de olika varianterna av en metod i Java så får vi,
Som vi såg i stycket ovan så finns det flera olika varianter av metoder, därför finns det ingen entydig syntax för hur man skapar en metod. Vi kommer
Om vi skriver ett generellt syntax för en metod i Java så går vi igenom det steg för steg nedan sen.
public static retur_datatyp namn(input_datatyp namnA, input_datatyp namnB, ...) { // Här skrivs det som ska hända i metoden return variabel_retur; // Metoden avslutas med return }
Vi kollar sen på metodens “huvud”
Ovan såg vi hur vi arbetar med metodens “huvud” och de inparametrar som metoden ska ha. Om vi istället riktar fokus mot vad metoden ska returnera och tittar närmare två nyckelord.
Vad menas egentligen med static (statisk) och non-static (icke-statisk) metoder i Java? Låt oss försöka reda ut ett par skillnader mellan dem.
Det känns säkerligen rätt otydligt vad skillnaderna mellan static och non-static är, det kommer bli tydligare längre fram när vi lär oss om klasser och objekt. Vi kommer i våra exempel framöver bara att använda static metoder.
Nu har vi lärt oss hur man skapar metoder i Java, men låt oss nu ta ett par exempel och använda det vi har gått igenom.
Vi börjar med ett enkelt exempel där vi skapar en metod som varje gång den anropas (används) ska skriva ut en text.
public class Exempel { // Skapar en metod som heter my_method public static void my_method(){ System.out.println("Detta är min första metod"); } public static void main(String[] args) { my_method(); // Anropa metoden my_method(); // Anropa metoden my_method(); // Anropa metoden } }
Avslutningsvis, för att använda metoden my_method som vi precis skapade så anropar vi den genom att skriva metodens namn följt av de inparametrar som metoden ska ta emot. Om vi kör programmet ovan så får vi utskriften
Detta är min första metod Detta är min första metod Detta är min första metod
I det här exemplet ska vi skapa en metod som ska ta två heltal (int) som inparametrar. Sedan ska metoden addera de två talen och returnera en double.
public class Exempel { // Metod som adderar två tal public static double addNumbers (int a, int b){ return (a + b); } public static void main(String[] args) { // De två inparametrarna till metoden int inputA = 10; int inputB = 4; // Använder metoden och skriver ut svaret System.out.println(addNumbers(inputA,inputB)); } }
Om vi tittar lite närmare på koden, det vi har gjort är att
Notera att vi kan köra metoden direkt i kommandot för att skriva ut text i konsolen. Om vi vill så går det självklart att först spara ned värdet i en variabel och sedan skriva ut värdet på variabeln.
Exekverar vi programmet ovan så får vi utskriften
14
Vi tar ett tredje och sista exempel för den här artikeln. Det vi ska göra är att programmera ett enkelt program som ska jämföra om den, till exempel, portkod som användaren anger överensstämmer med den angivna portkoden.
Om vi tar och skriver in det i kodeditorn så får vi,
// Importerar klassen Scanner import java.util.Scanner; public class Exempel { // Metod för att kontrollera koden public static boolean checkEntCode (int userIn){ if (userIn == 4698){ return true; } return false; } // Metod för skriva ut info vid rätt kod public static void printOpen (){ System.out.println("Rätt kod : Dörren öppnas"); } // Metod för skriva ut info vid fel kod public static void printClosed (){ System.out.println("Fel kod : Dörr låst"); } public static void main(String[] args) { // Ber användaren skriva in information System.out.println("Ange lösenord: "); // Skapar en instans av klassen scanner Scanner input = new Scanner(System.in); // Spara ned input från användaren int userIn = input.nextInt(); /* Använder metoden ovan för att kontrollera om koden är korrekt (true) */ if (checkEntCode(userIn)){ printOpen(); } else{ printClosed(); } } }
Avslutningsvis, i det här fallet blir det svårt att skriva ut vad svaret eftersom det beror på vad användaren skriver in. Kopiera gärna koden och testa själv.
Lämna gärna feedback med hjälp av stjärnorna nedan och hjälp oss att fortsätta göra sidan bättre.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!
Metoder i Java är ett kraftfullt verktyg för att återanvända och strukturera vår kod. Vi kan använda metoder för att förenkla och bryta ned våra program i mindre delar, för att sedan lösa de mindre delarna som tillsammans bygger ihop helhetslösningen. Att använda en metod kallas att man anropar den och det som blir resultatet av det anropet kallas för det som metoden returnerar. När man skapar en metod så behöver man specificera vad metoden ska returnera och vilka inparametrar som metoden ska ta in och använda.
En metod i Java utför ett kodblock, med andra ord, en sekvens av operationer, varje gång man använder metoden. En metod i Java är ett verktyg som hjälper oss att återanvända och strukturera vår kod.
Om ingen datatyp ska returneras anger man det reserverade ordet void. Det betyder att om vi inte vill att vår metod ska returnera tillbaka något så ska vi använda en void metod.
Ja det går bra. Varje inparameter specificeras med datatyp och namn för att sedan separeras med ett kommatecken. Det går att ange hur många inparametrar som helst till en metod.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!