Esercitazione sui Metodi
Pratica
I metodi possono risultare complessi da comprendere, quindi questo capitolo offre esempi di vari metodi in azione, mostrando come funzionano, dove utilizzarli e come scrivere e combinare più metodi in modo efficace.
Esempio 1
Iniziamo con un metodo che prende un array di tipo int e lo inverte, in modo che l'ultimo valore diventi il primo e il primo diventi l'ultimo:
Main.java
123456789101112131415161718192021222324252627282930package 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 }
-
Per prima cosa, osserviamo il metodo
flipIntArrayalla riga 4, che utilizza un ciclo per contare dalla fine dell'array e memorizzare i suoi valori in un nuovo array della stessa dimensione. È presente anche una variabileindexalla riga 6 che aumenta per memorizzare i valori nell'arrayresult; -
Successivamente, si può vedere il metodo alla riga 14 del capitolo precedente, che utilizzo per stampare l'array con una sola riga di codice;
-
Ora, passiamo a qualcosa di interessante. Si può notare alle righe 25-26 che sto passando un metodo come parametro all'interno di un altro metodo. Questo perché sto utilizzando un metodo che restituisce
int[]all'interno di un metodo che accettaint[]come parametro, risparmiando così la memoria allocata per la creazione delle variabili. Possiamo vedere che i nostri metodi funzionano e visualizzano i valori corretti.
Esempio 2
Supponiamo di dover scrivere un metodo che calcoli il fattoriale, prendendo come input una variabile intera.
Main.java
12345678910111213141516171819202122232425262728293031package 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 questo esempio, abbiamo scritto un metodo che moltiplica la variabile accumulatrice per i numeri da 1 fino al numero fornito per calcolare il fattoriale. Si tratta di un approccio diretto, e puoi vedere come utilizziamo questo metodo più volte nel metodo main, il che risparmia spazio e migliora la leggibilità del codice.
Successivamente, utilizziamo il nostro metodo all'interno di System.out.println perché il metodo restituisce un valore int.
Esempio 3
Scriveremo un metodo che crea una abbreviazione da un array di stringhe.
Main.java
1234567891011121314151617181920212223242526272829package 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 questo metodo, utilizziamo la classe StringBuilder per chiamare il metodo append() e aggiungere la prima lettera maiuscola a una stringa inizialmente vuota. In questo modo, iteriamo su ogni elemento dell'array, prendiamo la lettera nella posizione zero (la prima lettera di ogni parola), la convertiamo in maiuscolo utilizzando il metodo toUpperCase() e la aggiungiamo al nostro risultato tramite il metodo append(). Infine, utilizziamo il metodo toString() per convertire il nostro StringBuilder in una String.
1. Che cos'è un valore di ritorno in un metodo?
2. Cosa restituisce un metodo void?
3. È possibile utilizzare un metodo all'interno di un altro metodo?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain how to write the flipIntArray method?
How does passing a method as a parameter work in these examples?
Can you show how to use the abbreviation method with a sample array?
Awesome!
Completion rate improved to 2.63
Esercitazione sui Metodi
Scorri per mostrare il menu
Pratica
I metodi possono risultare complessi da comprendere, quindi questo capitolo offre esempi di vari metodi in azione, mostrando come funzionano, dove utilizzarli e come scrivere e combinare più metodi in modo efficace.
Esempio 1
Iniziamo con un metodo che prende un array di tipo int e lo inverte, in modo che l'ultimo valore diventi il primo e il primo diventi l'ultimo:
Main.java
123456789101112131415161718192021222324252627282930package 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 }
-
Per prima cosa, osserviamo il metodo
flipIntArrayalla riga 4, che utilizza un ciclo per contare dalla fine dell'array e memorizzare i suoi valori in un nuovo array della stessa dimensione. È presente anche una variabileindexalla riga 6 che aumenta per memorizzare i valori nell'arrayresult; -
Successivamente, si può vedere il metodo alla riga 14 del capitolo precedente, che utilizzo per stampare l'array con una sola riga di codice;
-
Ora, passiamo a qualcosa di interessante. Si può notare alle righe 25-26 che sto passando un metodo come parametro all'interno di un altro metodo. Questo perché sto utilizzando un metodo che restituisce
int[]all'interno di un metodo che accettaint[]come parametro, risparmiando così la memoria allocata per la creazione delle variabili. Possiamo vedere che i nostri metodi funzionano e visualizzano i valori corretti.
Esempio 2
Supponiamo di dover scrivere un metodo che calcoli il fattoriale, prendendo come input una variabile intera.
Main.java
12345678910111213141516171819202122232425262728293031package 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 questo esempio, abbiamo scritto un metodo che moltiplica la variabile accumulatrice per i numeri da 1 fino al numero fornito per calcolare il fattoriale. Si tratta di un approccio diretto, e puoi vedere come utilizziamo questo metodo più volte nel metodo main, il che risparmia spazio e migliora la leggibilità del codice.
Successivamente, utilizziamo il nostro metodo all'interno di System.out.println perché il metodo restituisce un valore int.
Esempio 3
Scriveremo un metodo che crea una abbreviazione da un array di stringhe.
Main.java
1234567891011121314151617181920212223242526272829package 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 questo metodo, utilizziamo la classe StringBuilder per chiamare il metodo append() e aggiungere la prima lettera maiuscola a una stringa inizialmente vuota. In questo modo, iteriamo su ogni elemento dell'array, prendiamo la lettera nella posizione zero (la prima lettera di ogni parola), la convertiamo in maiuscolo utilizzando il metodo toUpperCase() e la aggiungiamo al nostro risultato tramite il metodo append(). Infine, utilizziamo il metodo toString() per convertire il nostro StringBuilder in una String.
1. Che cos'è un valore di ritorno in un metodo?
2. Cosa restituisce un metodo void?
3. È possibile utilizzare un metodo all'interno di un altro metodo?
Grazie per i tuoi commenti!