Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Metodien Harjoittelu | Metodit
Java Laajennettu
course content

Kurssisisältö

Java Laajennettu

Java Laajennettu

1. Syvällinen Java-rakenne
2. Metodit
3. Merkkijonon Jatkotaso
4. Luokat
5. Luokat Jatko

book
Metodien Harjoittelu

Harjoittelu

Metodit voivat olla haastavia ymmärtää, joten tässä luvussa esitellään esimerkkejä erilaisista metodeista käytännössä, havainnollistaen miten ne toimivat, missä niitä kannattaa käyttää sekä kuinka kirjoittaa ja yhdistellä useita metodeja tehokkaasti.

Esimerkki 1

Aloitetaan metodilla, joka ottaa int-tyyppisen taulukon ja kääntää sen niin, että viimeinen arvo tulee ensimmäiseksi ja ensimmäinen viimeiseksi:

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 }
  • Kiinnitetään ensin huomiota metodiin flipIntArray rivillä 4, joka käyttää silmukkaa laskettaessa taulukon lopusta alkuun ja tallentaa arvot uuteen, saman kokoiseen taulukkoon. Rivillä 6 on myös index-muuttuja, joka kasvaa tallentaen arvot result-taulukkoon;

  • Seuraavaksi voit nähdä metodin rivillä 14 edellisestä luvusta, jota käytän taulukon tulostamiseen yhdellä koodirivillä;

  • Siirrytään nyt johonkin mielenkiintoiseen. Riveillä 25-26 näet, että välitän metodin parametrina toisen metodin sisällä. Tämä johtuu siitä, että käytän metodia, joka palauttaa int[] metodin sisällä, joka ottaa int[] parametrina, jolloin säästetään muistia muuttujien luomiselta. Näemme, että metodimme toimivat ja näyttävät oikeat arvot.

Esimerkki 2

Oletetaan, että meidän täytyy kirjoittaa metodi, joka laskee kertolaskun tuloksen (faktoriaalin) ja ottaa syötteenä kokonaislukumuuttujan.

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)); } }

Tässä esimerkissä olemme kirjoittaneet metodin, joka kertoo kertymämuuttujan luvuilla 1:stä annettuun lukuun laskeakseen kertoman. Tämä on suoraviivainen lähestymistapa, ja voit nähdä, kuinka käytämme tätä metodia useita kertoja main-metodissa, mikä säästää tilaa ja parantaa koodin luettavuutta. Seuraavaksi käytämme metodia System.out.println-lauseessa, koska metodi palauttaa int-arvon.

Esimerkki 3

Kirjoitamme metodin, joka luo lyhenteen merkkijonotaulukosta.

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)); } }

Tässä menetelmässä käytämme StringBuilder-luokkaa kutsuaksemme append()-metodia ja lisätäksemme ison alkukirjaimen aluksi tyhjään merkkijonoon. Näin käymme läpi jokaisen taulukon alkion, otamme kirjaimen nollannesta kohdasta (kunkin sanan ensimmäinen kirjain), muutamme sen isoksi kirjaimeksi toUpperCase()-metodilla ja lisäämme sen tulokseemme append()-metodin avulla. Lopuksi käytämme toString()-metodia muuntaaksemme StringBuilder-olion String-tyyppiseksi.

1. Mikä on palautusarvo metodissa?

2. Mitä void-metodi palauttaa?

3. Voiko metodia käyttää toisen metodin sisällä?

question mark

Mikä on palautusarvo metodissa?

Select the correct answer

question mark

Mitä void-metodi palauttaa?

Select the correct answer

question mark

Voiko metodia käyttää toisen metodin sisällä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

Java Laajennettu

Java Laajennettu

1. Syvällinen Java-rakenne
2. Metodit
3. Merkkijonon Jatkotaso
4. Luokat
5. Luokat Jatko

book
Metodien Harjoittelu

Harjoittelu

Metodit voivat olla haastavia ymmärtää, joten tässä luvussa esitellään esimerkkejä erilaisista metodeista käytännössä, havainnollistaen miten ne toimivat, missä niitä kannattaa käyttää sekä kuinka kirjoittaa ja yhdistellä useita metodeja tehokkaasti.

Esimerkki 1

Aloitetaan metodilla, joka ottaa int-tyyppisen taulukon ja kääntää sen niin, että viimeinen arvo tulee ensimmäiseksi ja ensimmäinen viimeiseksi:

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 }
  • Kiinnitetään ensin huomiota metodiin flipIntArray rivillä 4, joka käyttää silmukkaa laskettaessa taulukon lopusta alkuun ja tallentaa arvot uuteen, saman kokoiseen taulukkoon. Rivillä 6 on myös index-muuttuja, joka kasvaa tallentaen arvot result-taulukkoon;

  • Seuraavaksi voit nähdä metodin rivillä 14 edellisestä luvusta, jota käytän taulukon tulostamiseen yhdellä koodirivillä;

  • Siirrytään nyt johonkin mielenkiintoiseen. Riveillä 25-26 näet, että välitän metodin parametrina toisen metodin sisällä. Tämä johtuu siitä, että käytän metodia, joka palauttaa int[] metodin sisällä, joka ottaa int[] parametrina, jolloin säästetään muistia muuttujien luomiselta. Näemme, että metodimme toimivat ja näyttävät oikeat arvot.

Esimerkki 2

Oletetaan, että meidän täytyy kirjoittaa metodi, joka laskee kertolaskun tuloksen (faktoriaalin) ja ottaa syötteenä kokonaislukumuuttujan.

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)); } }

Tässä esimerkissä olemme kirjoittaneet metodin, joka kertoo kertymämuuttujan luvuilla 1:stä annettuun lukuun laskeakseen kertoman. Tämä on suoraviivainen lähestymistapa, ja voit nähdä, kuinka käytämme tätä metodia useita kertoja main-metodissa, mikä säästää tilaa ja parantaa koodin luettavuutta. Seuraavaksi käytämme metodia System.out.println-lauseessa, koska metodi palauttaa int-arvon.

Esimerkki 3

Kirjoitamme metodin, joka luo lyhenteen merkkijonotaulukosta.

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)); } }

Tässä menetelmässä käytämme StringBuilder-luokkaa kutsuaksemme append()-metodia ja lisätäksemme ison alkukirjaimen aluksi tyhjään merkkijonoon. Näin käymme läpi jokaisen taulukon alkion, otamme kirjaimen nollannesta kohdasta (kunkin sanan ensimmäinen kirjain), muutamme sen isoksi kirjaimeksi toUpperCase()-metodilla ja lisäämme sen tulokseemme append()-metodin avulla. Lopuksi käytämme toString()-metodia muuntaaksemme StringBuilder-olion String-tyyppiseksi.

1. Mikä on palautusarvo metodissa?

2. Mitä void-metodi palauttaa?

3. Voiko metodia käyttää toisen metodin sisällä?

question mark

Mikä on palautusarvo metodissa?

Select the correct answer

question mark

Mitä void-metodi palauttaa?

Select the correct answer

question mark

Voiko metodia käyttää toisen metodin sisällä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5
some-alt