Esattamente. Il this è necessario solamente in quanto ho dato lo stesso nome al parametro del costruttore e alla variabile d'istanza, quindi devo distinguerle.
Per il resto, con quell'istruzione, non faccio altro che assegnare alla variabile d'istanza f l'indirizzo della finestra, quindi, qualsiasi metodo richiamato su quell'oggetto, sarà un metodo della finestra che è stata istanziata. Fai attenzione a queste sottigliezze, perchè molti si perdono in queste cose e commettono errori banali come questo:
In questo modo all'interno della classe Thread1 viene creata una nuova finestra, un oggetto diverso da quello che è stato istanziato dalla classe contenente il main. L'operatore new, infatti, crea un nuovo oggetto, mentre lo scopo di quell'oggetto è fornire un puntatore all'oggetto già istanziato su cui chiamare i metodi. Non ha senso (anzi, è sbagliato!) creare una finestra e cercare di lavorarci facendo riferimento ad una finestra diversa.codice:class Thread1 extends Thread { private Finestra f; public Thread1() { f = new Finestra() } }
Ciao.![]()