Fondamenti di informatica
Oggetti e Java
Luca Cabibbo
Definizione di metodi
Capitolo 15
febbraio 2004
1
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Introduzione alla definizione di metodi
Una classe che è il progetto di un singolo oggetto classe
 progetto e realizzazione del comportamento e dello stato di
questo oggetto
 le operazioni sono implementate da metodi
 le proprietà sono implementate da variabile
 facciamo l’ipotesi semplificativa che l’oggetto non abbia stato
Scopo della definizione di un metodo
 implementare una operazione
 supportare la definizione di altri metodi
2
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Definizione di un semplice metodo
/* La classe Salutatore rappresenta un oggetto
* che sa salutare.
*/
class Salutatore {
/* Visualizza un saluto sullo schermo. */
public static void saluta() {
System.out.println("Salve");
}
}
3
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
La classe Salutatore e l’oggetto classe Salutatore
Salutatore
static void saluta()

«oggetto classe»
Salutatore
void saluta()
è possibile chiedere a Salutatore di eseguire questa
operazione mediante la seguente istruzione
Salutatore.saluta();
4
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Uso di classi e metodi
/* Applicazione di esempio per Salutatore. */
class DemoSalutatore {
public static void main(String[] args) {
/* visualizza un saluto sullo schermo */
Salutatore.saluta();
}
}
«applicazione»
DemoSalutatore
«oggetto classe»
Salutatore
main(...)
1: main(...)
5
void saluta()
1.1: saluta()
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Uso dell’oggetto classe Salutatore
«oggetto classe»
Salutatore
«applicazione»
DemoSalutatore
void saluta()
main(…)
saluta()
viene eseguita il corpo
del metodo void saluta()
6
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi e variabili locali
/* La classe AlcuneTabelline rappresenta un oggetto
* che sa calcolare alcune tabelline. */
class AlcuneTabelline {
/* Visualizza la tabellina del tre. */
public static void tabellinaTre() {
int i;
// per iterare tra 1 e 10
/* calcola e stampa la tabellina del tre */
System.out.println("Tabellina del 3:");
for (i=1; i<=10; i++)
System.out.print(3*i + " ");
System.out.println();
}
/* Visualizza la tabellina del cinque. */
public static void tabellinaCinque() {
int i;
// per iterare tra 1 e 10
/* calcola e stampa la tabellina del cinque */
System.out.println("Tabellina del 5:");
for (i=1; i<=10; i++)
System.out.print(5*i + " ");
System.out.println();
}
}
7
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
AlcuneTabelline
AlcuneTabelline
static void tabellinaTre()
static void tabellinaCinque()
8
Definizione di metodi
«oggetto classe»
AlcuneTabelline
void tabellinaTre()
void tabellinaCinque()
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi e variabili locali
public static void tabellinaTre() {
int i;
// per iterare tra 1 e 10
...
}
public static void tabellinaCinque() {
int i;
// per iterare tra 1 e 10
...
}
Le variabili dichiarate in un metodo sono locali al metodo
 ciascun metodo può accedere solo alle proprie variabili locali
9
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi con parametri
La classe AlcuneTabelline è insoddisfacente
 sarebbe preferibile un oggetto che sa calcolare qualsiasi
tabellina – in modo parametrico
/* calcola la tabellina del 5 */
Tabelline.tabellina(5);
/* calcola la tabellina del 9 */
Tabelline.tabellina(9);
10
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
La classe Tabelline
/* La classe Tabelline rappresenta un oggetto
* che sa calcolare tutte le tabelline. */
class Tabelline {
/* Visualizza la tabellina del numero naturale n. */
public static void tabellina(int n) {
// pre: n>=0
int i;
// per iterare tra 1 e 10
/* calcola e stampa la tabellina del numero n */
System.out.println("Tabellina del " + n + ":");
for (i=1; i<=10; i++)
System.out.print(n*i + " ");
System.out.println();
}
}
11
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Parametri formali e parametri attuali
I parametri formali di un metodo sono variabili locali del metodo
public static void tabellina(int n) { ... }
L’invocazione di un metodo riporta i parametri attuali
dell’invocazione del metodo
Tabelline.tabellina(5);
12
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Esecuzione di un metodo con parametri
«oggetto classe»
Tabelline
void tabellina(int n)
viene valutato il valore
dell’espressione 5,
che è 5
alla variabile n viene
assegnato il valore 5
tabellina(5)
viene eseguito il corpo del
metodo void tabellina(int n)
13
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame di parametri
Il legame dei parametri è l’associazione che avviene tra
parametri attuali e parametri formali al momento dell’invocazione
di un metodo
 in Java esiste solo il legame dei parametri per valore
 in altri linguaggi di programmazione sono presenti anche altri
meccanismi di legame dei parametri
14
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi che restituiscono un valore
Molte operazioni prevedono la restituzione di un valore
int risultato;
/* calcola il fattoriale di 5 */
risultato = Fattoriale.fattoriale(5);
// 120
/* calcola e visualizza il fattoriale di 4 */
System.out.println( Fattoriale.fattoriale(4) );
15
Definizione di metodi
// 24
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
La classe Fattoriale
/* Classe per il calcolo del fattoriale. */
class Fattoriale {
/* Calcola e restituisce il fattoriale di n. */
public static int fattoriale(int n) {
// pre: n>=0
int f;
// il fattoriale di n
int i;
// per iterare tra 1 e n
/* calcola il fattoriale di n */
f = 1;
for (i=1; i<=n; i++)
f = f*i;
return f;
}
}
16
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi che restituiscono un valore
public static int fattoriale(int n) {
// pre: n>=0
int f;
// il fattoriale di n
int i;
// per iterare tra 1 e n
/* calcola il fattoriale di n */
f = 1;
for (i=1; i<=n; i++)
f = f*i;
return f;
}

17
l’istruzione return è l’istruzione che permette a un metodo di
restituire un valore
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Esecuzione di un metodo che restituisce un valore
«oggetto classe»
Fattoriale
int fattoriale(int n)
viene valutato il valore
dell’espressione 4,
che è 4
r = fattoriale(4)
alla variabile n viene
assegnato il valore 4
vengono eseguite le istruzioni
del corpo del metodo, tra cui
l’istruzione return f;
l’assegnazione a r può essere
completata, memorizzando il
valore restituito dal metodo
18
Definizione di metodi
viene restituito 24,
il valore di f
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Sovraccarico di nomi
Una classe può definire più metodi che hanno lo stesso nome
class Maggiore {
/* Calcola il
public static
...
}
/* Calcola il
public static
...
}
}

19
maggiore tra i due numeri a e b. */
int maggiore(int a, int b) {
maggiore tra i tre numeri a, b e c. */
int maggiore(int a, int b, int c) {
il nome maggiore è sovraccarico
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
La classe Maggiore
class Maggiore {
/* Calcola il maggiore tra i due numeri a e b. */
public static int maggiore(int a, int b) {
int max;
// il maggiore tra a e b
if (a>b)
max = a;
else
max = b;
return max;
}
/* Calcola il maggiore tra i tre numeri a, b e c. */
public static int maggiore(int a, int b, int c) {
int maxAB;
// il maggiore tra a e b
int maxABC;
// il maggiore tra a, b e c
maxAB = Maggiore.maggiore(a,b);
maxABC = Maggiore.maggiore(maxAB,c);
return maxABC;
}
}
20
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Auto-referenziazione
/* Calcola il maggiore tra i tre numeri a, b e c. */
public static int maggiore(int a, int b, int c) {
int maxAB;
// il maggiore tra a e b
int maxABC;
// il maggiore tra a, b e c
maxAB = maggiore(a,b);
maxABC = maggiore(maxAB,c);
return maxABC;
}
21
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Composizione dell’invocazione di metodi
L’auto-referenziazione consente di scrivere espressioni più
compatte ma ancora leggibili
/* Calcola il maggiore tra tre numeri. */
public static int maggiore(int a, int b, int c) {
return maggiore( maggiore(a,b), c );
}
22
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Classi e applicazioni
Una classe può avere più di una finalità
 in particolare, una classe può essere contemporaneamente
una applicazione e il progetto di un oggetto classe
23
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
La classe applicazione Fattoriale
import fiji.io.*;
/* Classe per il calcolo del fattoriale. */
class Fattoriale {
/* Calcola e restituisce il fattoriale di n. */
public static int fattoriale(int n) {
// pre: n>=0
int f;
// il fattoriale di n
int i;
// per iterare tra 1 e n
/* calcola il fattoriale di n */
f = 1;
for (i=1; i<=n; i++)
f = f*i;
return f;
}
/* L'applicazione Fattoriale legge dalla tastiera un numero
* e ne calcola e visualizza il fattoriale. */
public static void main(String[] args) {
int n;
// un numero
}
24
}
System.out.print("Scrivi un numero naturale: ");
n = Lettore.in.leggiInt();
System.out.println("Il fattoriale di " + n + " è " +
fattoriale(n));
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Visibilità delle variabili
Una variabile locale a un metodo è visibile solo nell’ambito di una
specifica attivazione di quel metodo
 il seguente frammento di codice non è corretto
public static void alfa() {
int a;
a = 5;
beta();
}
public static void beta() {
System.out.println(a);
}
25
Definizione di metodi
// invoca un altro metodo
// NO, a non è visibile
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Visibilità delle variabili
Un altro esempio di codice non corretto
public static void gamma() {
doppio(5);
System.out.println(d);
}
// invoca un altro metodo
// NO, d non è visibile
public static void doppio(int n) {
int d;
// il doppio di n
d = n*2;
}
26
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Programmazione strutturata (e non)
La programmazione strutturata è una disciplina di
programmazione che ha lo scopo di semplificare la struttura del
codice, regolando le modalità di composizione delle istruzioni, in
modo da ottenere codice la cui struttura, dal punto di vista del
controllo, sia facilmente individuabile e comprensibile
 un esempio di codice non strutturato
/* Calcola il maggiore tra i due numeri a e b. */
public static int maggiore(int a, int b) {
if (a>b)
return a;
else
return b;
}


27
facilmente leggibile – in questo caso
scarsamente leggibile – in presenza di metodi molto lunghi
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Effetti collaterali
Effetto collaterale provocato dall’esecuzione di un metodo (o
costruttore)
 la modifica a una variabile che non è locale al metodo (o
costruttore)
28
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
La classe Numero
Numero
valore : int
«costruttore»
Numero(int v)
«operazioni»
int getValore()
void setValore(int v)




29
un oggetto Numero rappresenta un numero intero, con il suo
valore
num = new Numero(3) crea un nuovo oggetto num di tipo
Numero che rappresenta il numero 3
num.getValore() restituisce il valore rappresentato
dall’oggetto num
num.setValore(8) modifica il valore rappresentato
dall’oggetto num
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Effetti collaterali
Numero a;
a = new Numero(3);
System.out.println( a.getValore() );

l’esecuzione del costruttore modifica il valore della variabile
d’istanza dell’oggetto Numero
 effetto collaterale
a.setValore(4);
System.out.println( a.getValore() );

30
// 3
// 4
l’esecuzione del metodo setValore modifica il valore della
variabile d’istanza dell’oggetto Numero
 effetto collaterale
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Altri effetti collaterali
Numero a, b;
a = new Numero(4);
b = a;
// b referenzia lo stesso oggetto
// referenziato da a
System.out.println( b.getValore() );
// 4

si considerino anche le seguenti istruzioni
a.setValore(5);
System.out.println( a.getValore() );
System.out.println( b.getValore() );


31
// 5
// 5
la modifica dell’oggetto referenziato da a ha modificato anche
l’oggetto referenziato da b
 in realtà si tratta dello stesso oggetto
gli effetti collaterali più spiacevoli sono quelli che modificano lo
stato di oggetti accessibili da più variabili
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi di supporto
Nella realizzazione di un metodo M può essere utile definire altri
metodi per semplificare la scrittura di M
 si tratta di metodi di supporto
Voglio definire una operazione (metodo) per verificare se un
numero intero positivo N è perfetto
 N è perfetto se la somma dei suoi divisori (N escluso) è
uguale a N
 6 = 1+2+3, 10 ≠ 1+2+5
 è utile un metodo di supporto per calcolare la somma dei
divisori di un numero intero positivo N
32
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi di supporto
/* Verifica se il numero n è perfetto. */
public static boolean perfetto(int n) {
// pre: n>0
return n==sommaDivisori(n);
}
/* Calcola la somma dei divisori interi di n,
* n escluso. */
private static int sommaDivisori(int n) {
// pre: n>0
int sd;
// somma dei divisori di n
int d;
// per iterare da 1 a n-1
sd = 0;
for (d=1; d<n; d++)
if (n%d==0)
sd = sd+d;
return sd;
}
33
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Metodi di supporto
Un metodo di supporto
 utile se implementa una “funzionalità ben precisa e
significativa”
 utile se semplifica l’implementazione di un altro metodo
 può supportare la definizione di più metodi
/* Verifica se il numero n è difettivo. */
public static boolean difettivo(int n) {
// pre: n>0
return sommaDivisori(n)<n;
}
34
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Il modificatore private
private static int sommaDivisori(int n) { ... }



35
per il metodo sommaDivisori è stato usato il modificatore
private
 sommaDivisori è un metodo privato
i metodi privati
 non definiscono operazioni
 possono essere invocati solo da istruzioni scritte nella
stessa classe
 non possono essere invocati da istruzioni scritte al di fuori
della classe
la privatezza dei metodi è definita nell’ambito di una classe
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame dei parametri
Il legame dei parametri è l’associazione che avviene tra parametri
attuali e parametri formali durante l’attivazione di un metodo
Due modalità principali di legame dei parametri
 legame dei parametri per valore
 legame dei parametri per riferimento
36
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame dei parametri per valore
Nel legame dei parametri per valore
 i parametri attuali sono espressioni
 ciascuna variabile parametro formale prende come valore
iniziale il valore del parametro attuale nella posizione
corrispondente
37
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame per valore e parametri di tipo primitivo
Quali valori vengono stampati dalla seguente applicazione?
class LegamePerValoreUno {
public static void alfa(int m) {
System.out.println(m);
//
m = m+1;
System.out.println(m);
//
}
public static void main(String[]
int k = 5;
System.out.println(k);
//
alfa(k);
System.out.println(k);
//
}
}
38
Definizione di metodi
sicuramente 5
sicuramente 6
args) {
sicuramente 5
5 oppure 6?
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame per valore e parametri di tipo primitivo
Quali valori vengono stampati dalla seguente applicazione?
class LegamePerValoreDue {
public static void alfa(int k) {
System.out.println(k);
//
k = k+1;
System.out.println(k);
//
}
public static void main(String[]
int k = 5;
System.out.println(k);
//
alfa(k);
System.out.println(k);
//
}
}
39
Definizione di metodi
sicuramente 5
sicuramente 6
args) {
sicuramente 5
5 oppure 6?
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame per valore e parametri di tipo riferimento
Quali valori vengono stampati dalla seguente applicazione?
class LegamePerValoreTre {
public static void alfa(Numero m) {
System.out.println(m.getValore()); // sicuramente 5
m = new Numero(6);
System.out.println(m.getValore()); // sicuramente 6
}
public static void main(String[] args) {
Numero k = new Numero(5);
System.out.println(k.getValore()); // sicuramente 5
alfa(k);
System.out.println(k.getValore()); // 5 oppure 6?
}
}
40
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame per valore e parametri di tipo riferimento
Quali valori vengono stampati dalla seguente applicazione?
class LegamePerValoreQuattro {
public static void alfa(Numero m) {
System.out.println(m.getValore()); //
/* modifica lo stato dell'oggetto
* passato come parametro */
m.setValore(6);
System.out.println(m.getValore()); //
}
public static void main(String[] args) {
Numero k = new Numero(5);
System.out.println(k.getValore()); //
alfa(k);
System.out.println(k.getValore()); //
}
}
41
Definizione di metodi
sicuramente 5
sicuramente 6
sicuramente 5
5 oppure 6?
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame dei parametri per riferimento
Nel legame dei parametri per riferimento
 ciascun parametro attuale deve essere una variabile dello
stesso tipo del parametro formale nella posizione
corrispondente
 ciascuna variabile parametro formale viene usata come
riferimento alla variabile parametro attuale nella posizione
corrispondente
42
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame dei parametri per riferimento
Legame dei parametri per riferimento in C#
 il parametro formale deve essere preceduto dalla parola ref
 anche i parametri formali devono essere preceduti da ref
Quali valori vengono stampati dalla seguente applicazione?
class LegamePerRiferimentoUno {
public static void alfa(ref int m) {
System.out.println(m);
// sicuramente 5
m = m+1;
System.out.println(m);
// sicuramente 6
}
public static void main(String[] args) {
int k = 5;
System.out.println(k);
// sicuramente 5
alfa(ref k);
System.out.println(k);
// 5 oppure 6?
}
}
43
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Legame dei parametri per riferimento
Quali valori vengono stampati dalla seguente applicazione?
class LegamePerRiferimentoDue {
public static void alfa(ref Numero m) {
System.out.println(m.getValore()); //
m = new Numero(6);
System.out.println(m.getValore()); //
}
public static void main(String[] args) {
Numero k = new Numero(5);
System.out.println(k.getValore()); //
alfa(ref k);
System.out.println(k.getValore()); //
}
}
44
Definizione di metodi
sicuramente 5
sicuramente 6
sicuramente 5
5 oppure 6?
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Linee guida
È possibile definire metodi con le seguenti motivazioni
 metodi (pubblici) che implementano operazioni
 metodi di supporto (privati) che semplificano
l’implementazione di altri metodi
È possibile definire metodi per
 calcolare funzioni
 provocare effetti collaterali
 ogni metodo dovrebbe implementare una funzionalità ben
precisa e significativa
Quando definire un metodo?
 la scelta di definire metodi che implementano operazioni è
una scelta progettuale, di alto livello
 la scelta di definire metodi di supporto è una scelta
realizzativa, di basso livello
45
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl
Linee guida
Se un metodo implementa un algoritmo che risolve un problema
 il nome del problema suggerisce il nome del metodo
 l’insieme di ingresso del problema è rappresentato dai
parametri formali del metodo
 l’insieme di uscita del metodo è rappresentato dal tipo di
ritorno del metodo
 la pre-condizione e la post-condizione vanno opportunamente
documentate – mediante commenti
 l’algoritmo è implementato dal corpo del metodo
I metodi di supporto
 normalmente implementano passi di algoritmi
 identificati nella progettazione di algoritmi per raffinamenti
successivi
46
Definizione di metodi
Luca Cabibbo – Fondamenti di informatica: Oggetti e Java
Copyright © 2004 – The McGraw-Hill Companies srl