Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Metodövningar | Metoder
Java Fördjupad
course content

Kursinnehåll

Java Fördjupad

Java Fördjupad

1. Djupgående Java-struktur
2. Metoder
3. Sträng Avancerad
4. Klasser
5. Klasser Avancerat

book
Metodövningar

Övning

Metoder kan vara utmanande att förstå, så detta kapitel ger exempel på olika metoder i praktiken, visar hur de fungerar, var de används och hur man skriver och kombinerar flera metoder effektivt.

Exempel 1

Vi börjar med en metod som tar en array av typen int och vänder på den så att sista värdet blir det första och det första blir det sista:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { static int[] flipIntArray(int[] array) { int[] result = new int[array.length]; int index = 0; for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } static void printIntArrayToTheConsole(int[] array) { for (int element : array) { System.out.print(element + " "); } System.out.println(); } public static void main(String[] args) { // do not modify the code below int[] firstArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] secondArray = {0, 2, 4, 6, 8, 10, 12, 14, 16}; printIntArrayToTheConsole(flipIntArray(firstArray)); printIntArrayToTheConsole(flipIntArray(secondArray)); } // do not modify the code above }
  • Först, observera metoden flipIntArray på rad 4, som använder en loop som räknar från slutet av arrayen och lagrar dess värden i en ny array av samma storlek. Det finns också en variabel index på rad 6 som ökar för att lagra värdena i result-arrayen;

  • Därefter kan du se metoden på rad 14 från föregående kapitel, som jag använder för att skriva ut arrayen med endast en kodrad;

  • Nu går vi vidare till något intressant. Du kan se på raderna 25-26 att jag skickar en metod som parameter inuti en annan metod. Detta beror på att jag använder en metod som returnerar int[] inuti en metod som tar int[] som parameter, vilket sparar minne som annars skulle användas för att skapa variabler. Vi kan se att våra metoder fungerar och visar korrekta värden.

Exempel 2

Antag att vi behöver skriva en metod som beräknar fakulteten, där en heltalsvariabel används som indata.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; // do not modify the code below this comment public class Main { // method to calculate the factorial of a number static int calculateFactorial(int input) { int result = 1; // loop to calculate factorial by multiplying each number from 1 to input for (int i = 1; i <= input; i++) { result = result * i; } // return the final result of the factorial calculation return result; } public static void main(String[] args) { // initializing the first number for factorial calculation int first = 5; // initializing the second number for factorial calculation int second = 7; // initializing the third number for factorial calculation int third = 4; // calculating and printing the factorial of the first number System.out.println("Factorial of the first number = " + calculateFactorial(first)); // calculating and printing the factorial of the second number System.out.println("Factorial of the second number = " + calculateFactorial(second)); // calculating and printing the factorial of the third number System.out.println("Factorial of the third number = " + calculateFactorial(third)); } }

I det här exemplet har vi skrivit en metod som multiplicerar den ackumulerande variabeln med tal från 1 till det angivna talet för att beräkna fakulteten. Det är en enkel metod, och du kan se hur vi använder denna metod flera gånger i main-metoden, vilket sparar utrymme och förbättrar kodens läsbarhet. Nästa steg är att vi använder vår metod inuti System.out.println eftersom metoden returnerar ett int-värde.

Exempel 3

Vi kommer att skriva en metod som skapar en förkortning från en array av strängar.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; // do not modify the code below this comment public class Main { // method to create abbreviation by taking first letter of each word static String makeAbbreviation(String[] input) { StringBuilder result = new StringBuilder(); // iterate through each word and append the first letter to result for (String word : input) { result.append(word.toUpperCase().charAt(0)); } // return the abbreviation as a string return result.toString(); } public static void main(String[] args) { // initializing arrays with words for abbreviation String[] firstArray = {"united", "nations"}; String[] secondArray = {"North", "Atlantic", "Treaty", "Organization"}; String[] thirdArray = {"Oh", "my", "God"}; // printing abbreviation for the first array System.out.println(makeAbbreviation(firstArray)); // printing abbreviation for the second array System.out.println(makeAbbreviation(secondArray)); // printing abbreviation for the third array System.out.println(makeAbbreviation(thirdArray)); } }

I denna metod använder vi klassen StringBuilder för att anropa metoden append() och lägga till den versala första bokstaven till en initialt tom sträng. På detta sätt itererar vi genom varje element i arrayen, tar bokstaven på nollte positionen (första bokstaven i varje ord), konverterar den till versal med hjälp av metoden toUpperCase() och lägger till den i vårt resultat med metoden append(). Slutligen använder vi metoden toString() för att konvertera vår StringBuilder till String.

1. Vad är ett returvärde i en metod?

2. Vad returnerar en void-metod?

3. Kan en metod användas inuti en annan metod?

question mark

Vad är ett returvärde i en metod?

Select the correct answer

question mark

Vad returnerar en void-metod?

Select the correct answer

question mark

Kan en metod användas inuti en annan metod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

Java Fördjupad

Java Fördjupad

1. Djupgående Java-struktur
2. Metoder
3. Sträng Avancerad
4. Klasser
5. Klasser Avancerat

book
Metodövningar

Övning

Metoder kan vara utmanande att förstå, så detta kapitel ger exempel på olika metoder i praktiken, visar hur de fungerar, var de används och hur man skriver och kombinerar flera metoder effektivt.

Exempel 1

Vi börjar med en metod som tar en array av typen int och vänder på den så att sista värdet blir det första och det första blir det sista:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { static int[] flipIntArray(int[] array) { int[] result = new int[array.length]; int index = 0; for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } static void printIntArrayToTheConsole(int[] array) { for (int element : array) { System.out.print(element + " "); } System.out.println(); } public static void main(String[] args) { // do not modify the code below int[] firstArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] secondArray = {0, 2, 4, 6, 8, 10, 12, 14, 16}; printIntArrayToTheConsole(flipIntArray(firstArray)); printIntArrayToTheConsole(flipIntArray(secondArray)); } // do not modify the code above }
  • Först, observera metoden flipIntArray på rad 4, som använder en loop som räknar från slutet av arrayen och lagrar dess värden i en ny array av samma storlek. Det finns också en variabel index på rad 6 som ökar för att lagra värdena i result-arrayen;

  • Därefter kan du se metoden på rad 14 från föregående kapitel, som jag använder för att skriva ut arrayen med endast en kodrad;

  • Nu går vi vidare till något intressant. Du kan se på raderna 25-26 att jag skickar en metod som parameter inuti en annan metod. Detta beror på att jag använder en metod som returnerar int[] inuti en metod som tar int[] som parameter, vilket sparar minne som annars skulle användas för att skapa variabler. Vi kan se att våra metoder fungerar och visar korrekta värden.

Exempel 2

Antag att vi behöver skriva en metod som beräknar fakulteten, där en heltalsvariabel används som indata.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; // do not modify the code below this comment public class Main { // method to calculate the factorial of a number static int calculateFactorial(int input) { int result = 1; // loop to calculate factorial by multiplying each number from 1 to input for (int i = 1; i <= input; i++) { result = result * i; } // return the final result of the factorial calculation return result; } public static void main(String[] args) { // initializing the first number for factorial calculation int first = 5; // initializing the second number for factorial calculation int second = 7; // initializing the third number for factorial calculation int third = 4; // calculating and printing the factorial of the first number System.out.println("Factorial of the first number = " + calculateFactorial(first)); // calculating and printing the factorial of the second number System.out.println("Factorial of the second number = " + calculateFactorial(second)); // calculating and printing the factorial of the third number System.out.println("Factorial of the third number = " + calculateFactorial(third)); } }

I det här exemplet har vi skrivit en metod som multiplicerar den ackumulerande variabeln med tal från 1 till det angivna talet för att beräkna fakulteten. Det är en enkel metod, och du kan se hur vi använder denna metod flera gånger i main-metoden, vilket sparar utrymme och förbättrar kodens läsbarhet. Nästa steg är att vi använder vår metod inuti System.out.println eftersom metoden returnerar ett int-värde.

Exempel 3

Vi kommer att skriva en metod som skapar en förkortning från en array av strängar.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; // do not modify the code below this comment public class Main { // method to create abbreviation by taking first letter of each word static String makeAbbreviation(String[] input) { StringBuilder result = new StringBuilder(); // iterate through each word and append the first letter to result for (String word : input) { result.append(word.toUpperCase().charAt(0)); } // return the abbreviation as a string return result.toString(); } public static void main(String[] args) { // initializing arrays with words for abbreviation String[] firstArray = {"united", "nations"}; String[] secondArray = {"North", "Atlantic", "Treaty", "Organization"}; String[] thirdArray = {"Oh", "my", "God"}; // printing abbreviation for the first array System.out.println(makeAbbreviation(firstArray)); // printing abbreviation for the second array System.out.println(makeAbbreviation(secondArray)); // printing abbreviation for the third array System.out.println(makeAbbreviation(thirdArray)); } }

I denna metod använder vi klassen StringBuilder för att anropa metoden append() och lägga till den versala första bokstaven till en initialt tom sträng. På detta sätt itererar vi genom varje element i arrayen, tar bokstaven på nollte positionen (första bokstaven i varje ord), konverterar den till versal med hjälp av metoden toUpperCase() och lägger till den i vårt resultat med metoden append(). Slutligen använder vi metoden toString() för att konvertera vår StringBuilder till String.

1. Vad är ett returvärde i en metod?

2. Vad returnerar en void-metod?

3. Kan en metod användas inuti en annan metod?

question mark

Vad är ett returvärde i en metod?

Select the correct answer

question mark

Vad returnerar en void-metod?

Select the correct answer

question mark

Kan en metod användas inuti en annan metod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5
some-alt