Cursusinhoud
Java Uitgebreid
Java Uitgebreid
Oefening met Methoden
Oefening
Methoden kunnen lastig te begrijpen zijn, daarom biedt dit hoofdstuk voorbeelden van verschillende methoden in actie, waarbij wordt getoond hoe ze werken, waar ze te gebruiken zijn en hoe je meerdere methoden effectief schrijft en combineert.
Voorbeeld 1
Laten we beginnen met een methode die een array van het type int
neemt en deze omdraait zodat de laatste waarde de eerste wordt en de eerste de laatste:
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 }
-
Let eerst op de methode
flipIntArray
op regel 4, die een lus gebruikt die vanaf het einde van de array telt en de waarden opslaat in een nieuw aangemaakte array van dezelfde grootte. Er is ook eenindex
-variabele op regel 6 die toeneemt om de waarden in deresult
-array op te slaan; -
Vervolgens zie je de methode op regel 14 uit het vorige hoofdstuk, die ik gebruik om de array in slechts één regel code af te drukken;
-
Nu gaan we verder met iets interessants. Je ziet op regels 25-26 dat ik een methode als parameter doorgeef binnen een andere methode. Dit komt omdat ik een methode gebruik die
int[]
retourneert binnen een methode dieint[]
als parameter neemt, waardoor het geheugen dat nodig is voor het aanmaken van variabelen wordt bespaard. We zien dat onze methoden werken en de juiste waarden weergeven.
Voorbeeld 2
Stel dat we een methode moeten schrijven die de faculteit berekent, waarbij een integer als invoer wordt genomen.
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)); } }
In dit voorbeeld hebben we een methode geschreven die de accumulerende variabele vermenigvuldigt met getallen van 1
tot het opgegeven getal om de faculteit te berekenen. Het is een eenvoudige aanpak, en je ziet hoe we deze methode meerdere keren gebruiken in de main
-methode, wat ruimte bespaart en de leesbaarheid van de code verbetert.
Vervolgens gebruiken we onze methode binnen System.out.println
omdat de methode een int
-waarde retourneert.
Voorbeeld 3
We schrijven een methode die een afkorting maakt van een array van strings.
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)); } }
In deze methode gebruiken we de klasse StringBuilder
om de methode append()
aan te roepen en de hoofdletter van de eerste letter toe te voegen aan een aanvankelijk lege string. Op deze manier itereren we door elk element van de array, nemen we de letter op de nulde positie (de eerste letter van elk woord), zetten deze om naar hoofdletters met behulp van de methode toUpperCase()
, en voegen deze toe aan ons resultaat met de methode append()
. Tot slot gebruiken we de methode toString()
om onze StringBuilder
om te zetten naar een String
.
1. Wat is een returnwaarde in een methode?
2. Wat retourneert een void
-methode?
3. Kan een methode binnen een andere methode worden gebruikt?
Bedankt voor je feedback!