Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Esercitazione sui Metodi | Metodi
Java Avanzato

bookEsercitazione 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

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 }
  • Per prima cosa, osserviamo il metodo flipIntArray alla 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 variabile index alla riga 6 che aumenta per memorizzare i valori nell'array result;

  • 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 accetta int[] 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

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

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

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

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?

question mark

Che cos'è un valore di ritorno in un metodo?

Select the correct answer

question mark

Cosa restituisce un metodo void?

Select the correct answer

question mark

È possibile utilizzare un metodo all'interno di un altro metodo?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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

bookEsercitazione 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

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 }
  • Per prima cosa, osserviamo il metodo flipIntArray alla 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 variabile index alla riga 6 che aumenta per memorizzare i valori nell'array result;

  • 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 accetta int[] 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

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

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

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

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?

question mark

Che cos'è un valore di ritorno in un metodo?

Select the correct answer

question mark

Cosa restituisce un metodo void?

Select the correct answer

question mark

È possibile utilizzare un metodo all'interno di un altro metodo?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
some-alt