Kurssisisältö
Java Laajennettu
Java Laajennettu
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
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ösindex
-muuttuja, joka kasvaa tallentaen arvotresult
-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 ottaaint[]
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
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
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ä?
Kiitos palautteestasi!