Non ho letto tutto tutto (non ho molto tempo ora, vedrò magari stasera) ma ..... purtroppo non è tutto corretto. Il CalcDistanza in Punto NON va bene.
La questione è che CalcDistanza è un metodo "di istanza". Un metodo di istanza si presuppone, in generale, che vada ad usare lo "stato" dell'oggetto su cui il metodo è invocato.
Ora, che tu faccia es. (p1 / p2 / pA / pB sono 4 oggetti Punto distinti)
p1.CalcDistanza(pA, pB)
oppure
p2.CalcDistanza(pA, pB)
che differenza c'è? Invochi CalcDistanza su due oggetti, p1 e p2. Ma il loro stato NON lo usi. E quindi purtroppo così NON ha senso.
Le soluzioni sono due:
1) Rendi static il metodo CalcDistanza. In questo modo diventa un metodo di "utilità", slegato da qualunque istanza di Punto. Per invocarlo si dovrebbe usare il nome della classe:
Punto.CalcDistanza(pA, pB)
2) Cambi la forma del metodo (soluzione che è più Object-Oriented):
public int CalcDistanza(Punto altroPunto) {
E quale è l'altro punto? Semplicemente è il this, l'oggetto su cui il metodo è invocato!
P.S. inoltre segui meglio le convenzioni sui nomi.
P.S.2: perché la distanza è come int? La distanza è molto più probabile che sia non intera.

Rispondi quotando
