Parametri impliciti ed espliciti
§ Parametro (parametro esplicito): dati in ingresso
a un metodo. Non tutti i metodi necessitano
di parametri.
§ Parametro implicito: l'oggetto con cui si invoca
un metodo
System.out.println(greeting)
greeting.length() // non
ha parametri espliciti
System.out.println(greeting)
Parametri impliciti ed espliciti
Passaggio di parametro al
metodo println
Valori restituiti
§ Il valore restituito da un metodo è il risultato che il
metodo ha calcolato perché questo venga utilizzato nel codice che
ha invocato il metodo
int
n = greeting.length(); // restituisce il valore
//
memorizzato in n
Valori restituiti
Invocazione del metodo length su
un oggetto di tipo String
Utlizzo dei valori restituiti
§ Il valore restituito da un metodo può anche essere
utilizzato
direttamente come parametro di un altro metodo
§ Non tutti i metodi restituiscono valori.
Per esempio:
System.out.println(greeting.length());
println
Utilizzo dei valori restituiti
Il valore restituito da un metodo utilizzato come
parametro di un altro metodo
Una invocazione più complessa
§ Il metodo replace
esegue operazioni di ricerca
e sostituzione
river.replace("issipp", "our")
§ Come si vede nella Figura 8, questa invocazione
di metodo ha
§ un parametro implicito: la stringa “Mississippi”
§ due parametri espliciti: le stringhe “issipp”
e “our”"
§ un valore restituito: la stringa “Missouri”
Una invocazione più complessa
")
Invocazione del metodo replace
Definizioni di metodo
§ Quando in una classe si definisce un metodo,
vengono specificati i tipi dei parametri espliciti e
del
valore restituito.
§ Il tipo del parametro implicito è la classe in cui è
definito il metodo: ciò non viene menzionato nella
definizione del metodo, e proprio per questo si parla
di parametro “implicito”.
Definizioni di metodo
§ Esempio: la
classe String definisce
public
int length()
//
restituisce un valore di tipo int
//
non ha parametri espliciti
public
String replace(String target, String replacement)
//
restituisce un valore di tipo String;
// due
parametri espliciti di tipo String
Definizioni di metodo
§ Se il metodo non restituisce un valore,il tipo di valore
restituito viene dichiarato come void void
§ Il nome di un metodo è sovraccarico se una classe
definisce più metodi con lo stesso nome (ma con
parametri di tipi diversi).
public
void println(String output) // nella classe PrintStream
public void println(String output)
public void println(int output)
Tipi numerici
§ Numeri interi short, int, long
13
§ Numeri in virgola mobile double float, double
1.3
0.00013
1.3E-4 // 1. Tipi numerici
Quando un numero in virgola mobile viene moltiplicato o
diviso per 10, si modifica solamente la posizione del
separatore decimale, che diviene così “mobile”.
NOTA: Rappresentazione binaria non decimale (ma vale
stesso concetto)1.3
× 10-4.
§ In Java, i numeri non sono oggetti e i tipi numerici non
sono classi; i tipi numerici sono tipi primitivi, non classi.
Operazioni aritmetiche
§ Operatori: + - *
Come avviene in matematica, l'operatore * ha la
precedenza rispetto all'operatore +
10 + n
n
- 1
10
* n // 10 × n
x
+ y * 2 // rappresenta la somma di x e y * 2
(x
+ y) * 2 // moltiplica la somma di x e y per 2
1.3E-4 //
1.3 × 10-4 in Java3 ×
10-4 Forme rettangolari e oggetti Rectangle
§ Un oggetto Rectangle non è una forma rettangolare, ma
un oggetto che contiene un insieme di numeri che
descrivono il rettangolova
Costruzione di oggetti
§ Dettaglio:
1. L’operatore new costruisce
un oggetto di tipo Rectangle.
2. Nel fare ciò, usa i parametri
ricevuti (in questo caso, 5, 10, 20 e 30)
per assegnare valori iniziali ai dati dell’oggetto.
3. Restituisce l’oggetto.
§ Solitamente l’oggetto creato dall’operatore new viene
memorizzato in una variabile, in questo modo:
Rectangle box
= new Rectangle(5, 10, 20, 30);
Costruzione di oggetti
§ Il processo che crea un nuovo oggetto è detto
costruzione.
§ I quattro valori 5, 10, 20 e 30 rappresentano
i parametri di costruzione.
§ Alcune classi permettono di costruire oggetti
in più modi diversi.
new
Rectangle()
//
costruisce un rettangolo con il vertice superiore
// sinistro posizionato all'origine (0, 0),
// con
larghezza 0, e altezza 0
Sintassi 2.3: costruzione di oggetti
new NomeClasse(parametri)
Esempio:
new
Rectangle(5, 10, 20, 30)
new
Rectangle()
Obiettivo:
Costruire un nuovo oggetto, inizializzarlo tramite i
parametri
di costruzione e restituire un riferimento all’oggetto costruito.
Costruzione di oggetti
§ La classe String è un po' “speciale”...
String
river = "Mississippi";
//
alcuni costruttori di String
//
public String() (stringa vuota)
//
public String(String original) (copia stringa)
// public
String(char[] value) (da un array di caratteri)
Realizzare un programma di collaudo
Il programma di collaudo esegue i seguenti passi:
§ Definisce una nuova classe.
§ Definisce in essa il metodo main.
§ Costruisce uno o più oggetti all’interno del metodo
main.
§ Applica metodi agli oggetti.
§ Visualizza i risultati delle invocazioni dei metodi.
§ Visualizza i valori previsti.
File MoveTester.javaMoveTester.java
01: import
java.awt.Rectangle;
02:
03: public
class MoveTester
04: {
05: public
static void main(String[] args)
06: {
07: Rectangle box = new Rectangle(5,
10, 20, 30);
08:
09: // sposta il rettangolo
10: box.translate(15, 25);
11:
12: // visualizza informazioni sul
rettangolo traslato
13: System.out.print("x:
");
14: System.out.println(box.getX());
15: System.out.println("Expected:
20");
16:
17: System.out.print("y:
");
18: System.out.println(box.getY());
19: System.out.println("Expected: 35"); }
20:
}
ch02/rectangle/MoveTester.java
(cont.)
Visualizza:
x: 20
Expected: 20
y: 35
Expected: 35
Nessun commento:
Posta un commento