Visualizzazione dei risultati da 1 a 10 su 22

Visualizzazione discussione

  1. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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.
    Ultima modifica di andbin; 16-11-2016 a 19:39
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.