

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
9 questions
FUNCȚII MATEMATICE-EXCEL
Presentation
•
11th Grade
13 questions
Commerci e città
Presentation
•
11th Grade
13 questions
Startup
Presentation
•
11th Grade
15 questions
Attributes of Rational Functions
Presentation
•
11th Grade
12 questions
Negatives Adjectives
Presentation
•
11th Grade
11 questions
PREPARACIÓN Y CONSERVACIÓN DE LOS ALIMENTOS
Presentation
•
11th Grade
12 questions
Olimpiadi
Presentation
•
10th Grade
16 questions
Adjectives agreement - French
Presentation
•
10th Grade
Popular Resources on Wayground
10 questions
GPA Lesson
Presentation
•
9th - 12th Grade
7 questions
Albert Einstein
Quiz
•
3rd Grade
31 questions
Bridge A Review
Quiz
•
3rd Grade
6 questions
Blue Sue and Red Ruth
Quiz
•
3rd Grade
8 questions
(Day12 HW) Inverse Trig Ratios
Quiz
•
9th Grade
20 questions
Summer Geometry QUIZ (Week3)
Quiz
•
9th Grade
16 questions
Theme Practice
Quiz
•
7th Grade
20 questions
Taxes
Quiz
•
9th - 12th Grade