

Java 6. Dichiarazione e chiamata di metodi ausiliari
Presentation
•
Computers
•
11th Grade
•
Practice Problem
•
Hard
Lucia Intelisano
FREE Resource
18 Slides • 0 Questions
1
Dichiarazione e chiamata di metodi ausiliari
2
Programmazione procedurale
Fino ad ora abbiamo realizzato programmi costituiti da un unico metodo (il metodo main).
Quando il programma da realizzare è articolato diventa conveniente identificare sottoproblemi che possono essere risolti individualmente, scrivere sottoprogrammi che risolvono i sottoproblemi,
richiamare i sottoprogrammi dal programma principale (main). Questo approccio prende il nome di programmazione procedurale (o astrazione funzionale).
In Java i sottoprogrammi si realizzano tramite metodi ausiliari Sinonimi usati in altri linguaggi di programmazione: funzioni, procedure e (sub)routines
I metodi| Informatica
3
Programmazione procedurale
Un esempio: somma e prodotto dei primi 10 numeri naturali Scriviamo un programma SommaProdottoDieci che calcola, a scelta dell’utente, la somma o il prodotto dei numeri da 1 a 10.
Identifichiamo i sottoproblemi:
-calcolare la somma dei numeri da 1 a 10
-calcolare il prodotto dei numeri da 1 a 10
Realizzeremo quindi i metodi ausiliari: somma10 e prodotto10 che risolvono i due sottoproblemi il risultato di entrambi i metodi dovrà essere di tipo int.
I metodi| Informatica
4
Programmazione procedurale
Definizione del metodo ausiliario somma10
(il metodo prodotto10 `e analogo)
private static int somma10 () {
int ris =0;
for (int i =1; i <=10; i ++) {
ris = ris+i ;
return ris ;
}
}
I metodi| Informatica
5
Programmazione procedurale
-private specifica che si tratta di un metodo ausiliario (di aiuto a un altro metodo della stessa classe... non utilizzabile dalle altre classi)
-int è il tipo del risultato calcolato dal metodo
-somma10 è il nome del metodo
-return `e il comando che termina l’esecuzione del metodo e fornisce il risultato
I metodi| Informatica
6
import java.util.Scanner;
public class SommaProdottoDieci { // metodo principale
public static void main ( String [] args ) {
Scanner input = new Scanner (System.in);
System.out.println(" Inserisci 1 per la somma , 2 per il prodotto ");
int scelta = input.nextInt();
if (scelta==1) {
int risultato = somma10 (); // chiamata del metodo somma10
System.out.println(risultato);
} else if(scelta==2) {
int risultato = prodotto10 (); // chiamata del metodo prodotto10
System.out.println(risultato);
} else System.out.println("ERRORE");
} // metodo ausiliario che calcola la somma da 1 a 10
private static int somma10 () { int ris =0; for (int i =1; i <=10; i ++) ris += i ; return ris ; }
I metodi| Informatica
7
// metodo ausiliario che calcola il prodotto da 1 a 10
private static int prodotto10 () {
int ris =1;
for (int i =1; i <=10; i ++) {
ris = ris *i ;
}
return ris ;
}
} // FINE CLASSE
I metodi| Informatica
8
I metodo possono anche prevedere parametri
Esempio: metodo che calcola la somma di due numeri
public class SommaConMetodo {
public static void main ( String [] args ) {
int a =10 , b =20;
System.out.println(somma (a ,b ));
}
private static int somma ( int x , int y) {
return x+y ;
} }
I metodi| Informatica
Parametri
9
Nella dichiarazione di somma tra le parentesi tonde sono indicati i parametri attesi (parametri formali) con i rispettivi tipi — x e y
Nella chiamata di somma tra le parentesi tonde sono indicati i valori (parametri attuali, o argomenti) che sono passati al metodo per calcolare il risultato — a e b
I metodi| Informatica
Parametri
10
I parametri formali di un metodo sono variabili locali al corpo del metodo.
Un metodo non “vede” i parametri e le variabili di un altro (nemmeno del main, che è un metodo come tutti gli altri).
I valori dei parametri attuali vengono copiati (assegnati) nelle variabili usate come parametri formali del metodo un metodo deve sempre essere chiamato con parametri attuali di tipi compatibili con quelli dei parametri formali (e nell’ordine giusto).
I metodi| Informatica
Parametri
11
I nomi dei parametri formali e delle variabili di metodi diversi non interferiscono tra loro:
public static void main ( String [] args ) {
int y =10 , x =20;
int ris = ilPrimo(y , x );
System.out.println(ris); // stampa 10
}
private static int ilPrimo (int x , int y) {
return x;
}
I metodi| Informatica
Parametri
12
I nomi dei parametri formali e delle variabili di metodi diversi non interferiscono tra loro:
public static void main ( String [] args ) {
int y =10 , x =20;
int ris = ilPrimo(y , x );
System.out.println(ris); // stampa 10
}
private static int ilPrimo (int x , int y) {
return x;
}
I metodi| Informatica
Parametri
13
L’espressione che segue ogni return di un metodo deve avere un tipo compatibile con il tipo del metodo
private static int prova () {
return 3.5; // errore !
}
Il comando return può essere usato più volte in un metodo
if (x <0)
return 0;
else
return x;
I metodi| Informatica
Il comando return
14
Il compilatore controlla che il comando return sia sempre raggiungibile
private static int prova (int x) {
if (x >0)
return 3; // return non sempre raggiungibile
// ( condizionato dalla guardia dell ’if)
}
private static int prova () {
if ( true )
return 3; // ATTENZIONE : anche qui da ’ errore !! }
I metodi| Informatica
Il comando return
15
Quando un metodo non prevede un risultato si usa il tipo void
private static void stampaMessaggio () {
System.out.println(" Messaggio di prova ");
}
L’invocazione di un metodo di tipo void avviene senza assegnamento ... stampaMessaggio (); ...
I metodi| Informatica
Il tipo void
16
In questi casi il comando return è solitamente omesso, ma può essere usato (privo di espressione successiva) per interrompere l’esecuzione del metodo:
private static void stampaAsterischi ( int n) {
if (n <=0) {
System.out.println(" valore errato ");
return ; // corretto , ma usare con cautela !
}
for(int i=0;i<n;i++) {System.out.println("*");}
I metodi| Informatica
Il tipo void
17
Questo modo di usare return va usato con cautela (solo se effettivamente semplifica il programma senza confondere il lettore). E’ decisamente meglio evitare di usare return all’interno di cicli
I metodi| Informatica
Il tipo void
18
import java.util.Scanner;
public class OrarioMetodo {
public static void main (String[] args) {
Scanner input = new Scanner (System.in);
int ore , minuti ;
System.out.println (" Inserire ore e minuti :");
ore = input.nextInt();
minuti = input.nextInt();
if (orarioOk(ore,minuti))
System.out.println("E’ un orario ");
else System.out.println("Non e’ un orario ");
}
private static boolean orarioOk ( int o , int m) {
boolean ore_ok = (o >=0) && (o <24);
boolean minuti_ok = (m >=0) && (m <60);
return ore_ok && minuti_ok ; } }
I metodi| Informatica
Controllo orario
Dichiarazione e chiamata di metodi ausiliari
Show answer
Auto Play
Slide 1 / 18
SLIDE
Similar Resources on Wayground
13 questions
Louis Pasteur
Presentation
•
11th Grade
14 questions
Fruits et légumes
Presentation
•
KG
13 questions
I VERBI
Presentation
•
10th Grade
12 questions
Aplikasi Pengolah Angka/ Spreadsheet
Presentation
•
12th Grade
14 questions
Sondaggio Iniziale 2
Presentation
•
10th Grade
10 questions
C#alapok
Presentation
•
10th Grade
11 questions
2D Arrays
Presentation
•
10th - 12th Grade
12 questions
MOVIMENT FEMINISTA
Presentation
•
11th Grade
Popular Resources on Wayground
16 questions
Grade 3 Simulation Assessment 2
Quiz
•
3rd Grade
19 questions
HCS Grade 5 Simulation Assessment_1 2526sy
Quiz
•
5th Grade
10 questions
Cinco de Mayo Trivia Questions
Interactive video
•
3rd - 5th Grade
17 questions
HCS Grade 4 Simulation Assessment_2 2526sy
Quiz
•
4th Grade
24 questions
HCS Grade 5 Simulation Assessment_2 2526sy
Quiz
•
5th Grade
13 questions
Cinco de mayo
Interactive video
•
6th - 8th Grade
20 questions
Math Review
Quiz
•
3rd Grade
30 questions
GVMS House Trivia 2026
Quiz
•
6th - 8th Grade