Salve,
Non ho ben capito l'uso delle chiamate di metodo a cascata abbinato al riferimento this.
Anzitutto riassumo quello che dice il mio libro:
[...]Un riferimento può essere seguito da un operatore punto (.) e da una chiamata a uno dei metodi del tipo di riferimento. E' possibile concatenare più metodi tramite l'operatore punto, prestando attenzione al valore restituito dal metodo. Questa tecnica è detta chiamate di metodo a cascata (o concatenate).[...]
[...]Il riferimento this è implicitamente usato per referenziare sia le variabili d'istanza che i metodi di un oggetto.[...]
La teoria mi è chiara, ma non riesco ad afferrare completamente questo esempio, che abbrevio:
Codice PHP:
class Time{
...
public Time setHour(int h){
...
return this; // Ritorna un oggetto Time
}
public Time setMinute(int m){
...
return this;
}
public Time setsecond(int s){
...
return this;
}
}
public class TimeTest{
Time t = new Time();
t.setHour(18).setMinute(30).setSecond(22);
...
}
Non riesco ad afferrare completamente l'ultima riga, la chiamata a cascata appunto.
Ho capito che è possibile solo grazie al fatto che tutti e tre restituiscono un oggetto Time a cui t fa riferimento, ma sento che mi manca qualcosa. Mi spiego: io posso anche chiamare un ipotetico metodo
Codice PHP:
string output = "output : " +t.setTime(20,20,20).toString();
ma in questo caso abbino una String ad un oggetto Time.
In altre parole : che direzione ed in che modo si fanno i controlli sui tipi di dato restituiti per mezzo dell'operatore punto (.)?
spero di essere stato chiaro e chiedo venia per la prolissità,
Matteo