Kursinhalt
Java Erweitert
Java Erweitert
Methodenübung
Übung
Methoden können schwierig zu verstehen sein, daher bietet dieses Kapitel Beispiele für verschiedene Methoden in Aktion, zeigt wie sie funktionieren, wo sie verwendet werden und wie man mehrere Methoden effektiv schreibt und kombiniert.
Beispiel 1
Beginnen wir mit einer Methode, die ein Array vom Typ int
entgegennimmt und es umkehrt, sodass der letzte Wert der erste und der erste Wert der letzte wird:
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 }
-
Zunächst achten wir auf die Methode
flipIntArray
in Zeile 4, die eine Schleife verwendet, die vom Ende des Arrays zählt und deren Werte in einem neu erstellten Array gleicher Größe speichert. Es gibt außerdem eineindex
-Variable in Zeile 6, die erhöht wird, um die Werte imresult
-Array zu speichern; -
Als Nächstes sehen Sie die Methode in Zeile 14 aus dem vorherigen Kapitel, die ich verwende, um das Array mit nur einer Codezeile auszugeben;
-
Nun kommen wir zu etwas Interessantem. Sie sehen in den Zeilen 25-26, dass ich eine Methode als Parameter in eine andere Methode übergebe. Das liegt daran, dass ich eine Methode, die ein
int[]
zurückgibt, innerhalb einer Methode verwende, die einint[]
als Parameter nimmt, wodurch der Speicher für die Erstellung von Variablen eingespart wird. Wir sehen, dass unsere Methoden funktionieren und die richtigen Werte anzeigen.
Beispiel 2
Angenommen, wir müssen eine Methode schreiben, die das Fakultät berechnet und eine Ganzzahl als Eingabe erhält.
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 diesem Beispiel haben wir eine Methode geschrieben, die die Akkumulationsvariable mit den Zahlen von 1
bis zur angegebenen Zahl multipliziert, um die Fakultät zu berechnen. Es handelt sich um einen einfachen Ansatz, und Sie können sehen, wie wir diese Methode mehrfach in der main
-Methode verwenden, was Platz spart und die Lesbarkeit des Codes verbessert.
Anschließend verwenden wir unsere Methode innerhalb von System.out.println
, da die Methode einen int
-Wert zurückgibt.
Beispiel 3
Wir schreiben eine Methode, die aus einem Array von Strings eine Abkürzung erstellt.
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 dieser Methode verwenden wir die Klasse StringBuilder
, um die Methode append()
aufzurufen und den Großbuchstaben des ersten Buchstabens zu einem zunächst leeren String hinzuzufügen. Auf diese Weise iterieren wir durch jedes Element des Arrays, nehmen den Buchstaben an der nullten Position (den ersten Buchstaben jedes Wortes), wandeln ihn mit der Methode toUpperCase()
in einen Großbuchstaben um und fügen ihn mit der Methode append()
zu unserem Ergebnis hinzu. Abschließend verwenden wir die Methode toString()
, um unseren StringBuilder
in einen String
umzuwandeln.
1. Was ist ein Rückgabewert in einer Methode?
2. Was gibt eine void
-Methode zurück?
3. Kann eine Methode innerhalb einer anderen Methode verwendet werden?
Danke für Ihr Feedback!