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
course content

Contenuti del Corso

Java Avanzato

Java Avanzato

1. Struttura Profonda di Java
2. Metodi
3. String Avanzato
4. Classi
5. Classi Avanzate

book
Esercitazione sui Metodi

Pratica

I metodi possono risultare complessi da comprendere, quindi questo capitolo fornisce 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 che parte dalla fine dell'array e memorizza 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, puoi 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. Puoi vedere 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, è stato scritto un metodo che moltiplica la variabile accumulatrice per i numeri da 1 fino al numero fornito, al fine di calcolare il fattoriale. Si tratta di un approccio diretto, e si può osservare come questo metodo venga utilizzato più volte nel metodo main, il che ottimizza lo spazio e migliora la leggibilità del codice. Successivamente, il metodo viene utilizzato all'interno di System.out.println poiché restituisce un valore di tipo int.

Esempio 3

Si scriverà 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 attraverso 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

course content

Contenuti del Corso

Java Avanzato

Java Avanzato

1. Struttura Profonda di Java
2. Metodi
3. String Avanzato
4. Classi
5. Classi Avanzate

book
Esercitazione sui Metodi

Pratica

I metodi possono risultare complessi da comprendere, quindi questo capitolo fornisce 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 che parte dalla fine dell'array e memorizza 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, puoi 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. Puoi vedere 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, è stato scritto un metodo che moltiplica la variabile accumulatrice per i numeri da 1 fino al numero fornito, al fine di calcolare il fattoriale. Si tratta di un approccio diretto, e si può osservare come questo metodo venga utilizzato più volte nel metodo main, il che ottimizza lo spazio e migliora la leggibilità del codice. Successivamente, il metodo viene utilizzato all'interno di System.out.println poiché restituisce un valore di tipo int.

Esempio 3

Si scriverà 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 attraverso 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