Aggiungere Altri Metodi alla nostra Classe

Il vantaggio chiave di usare una classe come Point piuttosto che una semplice tupla (7, 6) risiede nel fatto che adesso possiamo aggiungere metodi alla classe Point che corrispondono a operazioni che questi punti possono effettuare. In particolare, possiamo raggruppare insieme tutte queste operazioni e i tipi di dati a cui si applicano e ogni istanza della classe può avere il suo stato.

Un metodo si comporta come una funzione ma è invocata su una specifica istanza. Per esempio, data una tartaruga di nome tess, tess.right(90) chiede all’oggetto tess di eseguire il metodo right per girarsi di 90 gradi. I metodi sono acceduti con la notazione punto.

Aggiungiamo dei metodi per consentire a un punto di comunicarci il suo stato. Il metodo getX quando invocato ritornerà il valore della coordinata x. Una cosa da notare è che il metodo getX ha bisogno di un parametro formale self. Tutti i metodi definiti in una classe che operano su oggetti di quella class avranno self come primo parametro. Questo parametro serve come riferimento all’oggetto di cui si vuole conoscere lo stato.




(chp13_classes4)

Nota che il metodo getX (e anche il metodo getY) ritorna semplicemente il valore di self.x dell’oggetto itself.

Aggiungiamo un altro metodo, distanceFromOrigin per calcolare la distanza dall’origine. Ancora una volta la dichiarazione del metodo include come parametro self. Notiamo che l’invocazione non sta esplicitando tale parametro tra le parentesi, ma prima del punto. Questo è vero per tutte le invocazioni: la definizione del metodo ha sempre un parametro in più tra parentesi rispetto a ogni sua invocazione.




(chp13_classes5)

Next Section - Oggetti come Argomenti e Parametri