Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Metodeøvelser | Metoder
Java Utvidet
course content

Kursinnhold

Java Utvidet

Java Utvidet

1. Dyp Java-struktur
2. Metoder
3. Avansert Streng
4. Klasser
5. Avanserte Klasser

book
Metodeøvelser

Øvelse

Metoder kan være utfordrende å forstå, så dette kapittelet gir eksempler på ulike metoder i bruk, viser hvordan de fungerer, hvor de kan brukes, og hvordan man kan skrive og kombinere flere metoder effektivt.

Eksempel 1

La oss begynne med en metode som tar et array av typen int og snur det slik at siste verdi blir den første og første blir den siste:

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, legg merke til metoden flipIntArray på linje 4, som bruker en løkke som teller fra slutten av arrayet og lagrer verdiene i et nyopprettet array med samme størrelse. Det finnes også en index-variabel på linje 6 som øker for å lagre verdiene i result-arrayet;

  • Deretter kan du se metoden på linje 14 fra forrige kapittel, som jeg bruker for å skrive ut arrayet med kun én linje kode;

  • Nå går vi videre til noe interessant. Du kan se på linjene 25-26 at jeg sender en metode som parameter inn i en annen metode. Dette er fordi jeg bruker en metode som returnerer int[] inne i en metode som tar int[] som parameter, og dermed sparer minnet som ellers ville blitt brukt til å opprette variabler. Vi ser at metodene våre fungerer og viser riktige verdier.

Eksempel 2

Anta at vi må skrive en metode som beregner fakultet, og tar en heltallsvariabel som input.

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 dette eksempelet har vi skrevet en metode som multipliserer den akkumulerende variabelen med tall fra 1 til det gitte tallet for å beregne fakultet. Dette er en enkel tilnærming, og du kan se hvordan vi bruker denne metoden flere ganger i main-metoden, noe som sparer plass og forbedrer lesbarheten i koden. Deretter bruker vi metoden vår inne i System.out.println fordi metoden returnerer en int-verdi.

Eksempel 3

Vi skal skrive en metode som lager en forkortelse fra et array av strenger.

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 denne metoden bruker vi StringBuilder-klassen til å kalle append()-metoden og legge til den store forbokstaven til en opprinnelig tom streng. På denne måten itererer vi gjennom hvert element i arrayet, tar bokstaven på nullte posisjon (første bokstav i hvert ord), konverterer den til store bokstaver ved hjelp av toUpperCase()-metoden, og legger den til resultatet vårt med append()-metoden. Til slutt bruker vi toString()-metoden for å konvertere vår StringBuilder til String.

1. Hva er en returverdi i en metode?

2. Hva returnerer en void-metode?

3. Kan en metode brukes inne i en annen metode?

question mark

Hva er en returverdi i en metode?

Select the correct answer

question mark

Hva returnerer en void-metode?

Select the correct answer

question mark

Kan en metode brukes inne i en annen metode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

Java Utvidet

Java Utvidet

1. Dyp Java-struktur
2. Metoder
3. Avansert Streng
4. Klasser
5. Avanserte Klasser

book
Metodeøvelser

Øvelse

Metoder kan være utfordrende å forstå, så dette kapittelet gir eksempler på ulike metoder i bruk, viser hvordan de fungerer, hvor de kan brukes, og hvordan man kan skrive og kombinere flere metoder effektivt.

Eksempel 1

La oss begynne med en metode som tar et array av typen int og snur det slik at siste verdi blir den første og første blir den siste:

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, legg merke til metoden flipIntArray på linje 4, som bruker en løkke som teller fra slutten av arrayet og lagrer verdiene i et nyopprettet array med samme størrelse. Det finnes også en index-variabel på linje 6 som øker for å lagre verdiene i result-arrayet;

  • Deretter kan du se metoden på linje 14 fra forrige kapittel, som jeg bruker for å skrive ut arrayet med kun én linje kode;

  • Nå går vi videre til noe interessant. Du kan se på linjene 25-26 at jeg sender en metode som parameter inn i en annen metode. Dette er fordi jeg bruker en metode som returnerer int[] inne i en metode som tar int[] som parameter, og dermed sparer minnet som ellers ville blitt brukt til å opprette variabler. Vi ser at metodene våre fungerer og viser riktige verdier.

Eksempel 2

Anta at vi må skrive en metode som beregner fakultet, og tar en heltallsvariabel som input.

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 dette eksempelet har vi skrevet en metode som multipliserer den akkumulerende variabelen med tall fra 1 til det gitte tallet for å beregne fakultet. Dette er en enkel tilnærming, og du kan se hvordan vi bruker denne metoden flere ganger i main-metoden, noe som sparer plass og forbedrer lesbarheten i koden. Deretter bruker vi metoden vår inne i System.out.println fordi metoden returnerer en int-verdi.

Eksempel 3

Vi skal skrive en metode som lager en forkortelse fra et array av strenger.

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 denne metoden bruker vi StringBuilder-klassen til å kalle append()-metoden og legge til den store forbokstaven til en opprinnelig tom streng. På denne måten itererer vi gjennom hvert element i arrayet, tar bokstaven på nullte posisjon (første bokstav i hvert ord), konverterer den til store bokstaver ved hjelp av toUpperCase()-metoden, og legger den til resultatet vårt med append()-metoden. Til slutt bruker vi toString()-metoden for å konvertere vår StringBuilder til String.

1. Hva er en returverdi i en metode?

2. Hva returnerer en void-metode?

3. Kan en metode brukes inne i en annen metode?

question mark

Hva er en returverdi i en metode?

Select the correct answer

question mark

Hva returnerer en void-metode?

Select the correct answer

question mark

Kan en metode brukes inne i en annen metode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt