Ciao a tutti,
sono uno studedente alle prime armi. Sto studiando java da poco e ho il seguente problema da porvi:
Mi è stato dato il main di un programmino e io dovrei seguirlo per scrivere le classi per farlo funzionare. Il punto che non ho mai usato un oggetto direttamente, solitamente trattavo solo i loro metodi separatamente.
Ho riscritto il programmino in modo da semplificarlo il più possibile, così da lasciare solo i passaggi a me non molto chiari.
Il problema è che il metodo "compareTo" mi restituisce come secondo oggetto sempre 0.
E ancora, è necessario usare un altro attributo come quello che ho aggiunto, cioè "nuovoM"?Si potrebbe riscrivere il tutto usando solamente l'attributo "m"?
Un grazie in anticipo.
Ecco a voi il codice:
codice:package numerioggetti; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { Numero n1=null; Numero n2=null; double m=Double.parseDouble(JOptionPane.showInputDialog("inserisci un " +"numero: ")); n1=new Numero (m); m=Double.parseDouble(JOptionPane.showInputDialog("inserisci un numero:")); n2=new Numero (m); n1.somma(n2); System.out.print("Somma: "+n1); n1.sottrai(n2); System.out.print("Sottrazione: "+n1); if (n1.compareTo(n2)>0){ System.out.print("Il numero "+n1+" è maggiore di "+n2); } else if (n1.compareTo(n2)==0){ System.out.print("Il numero "+n1+" è uguale a "+n2); } else{ System.out.print("Il numero "+n1+" è minore di "+n2); } System.exit(0); } } class Numero { public Numero (double m){ this.m=m; } private double m; private double nuovoM; public double getM (){ return m; } public double somma (Numero unM){ nuovoM=m+unM.getM(); return nuovoM; } public double sottrai (Numero unM){ nuovoM=m-unM.getM(); return nuovoM; } public int compareTo (Numero unM){ int x=0; nuovoM=m; if (nuovoM<unM.getM()){ x=-1; } else if (nuovoM==unM.getM()){ x=0; } else if (nuovoM>unM.getM()){ x=1; } return x; } @Override public String toString(){ return nuovoM+"\n"; } }

Rispondi quotando