Ciao.
Ora che me lo fai notare hai ragione. Ho frainteso completamente il senso del main. Ero convinto di dover fare la somma e la sottrazione senza savrascrivere m.Non mi sembra che nessuno ti abbia chiesto di salvare il valore originale dell'istanza n1 della classe Numero.
Sono impazzito su un problema che neanche esisteva.
In definitiva ho scritto questa per la scuola:
mentre per togliermi la pulce dall'orecchio, ho cambiato il main per fargli fare quello che volevo all' inizio.codice:package numerioggetti; public class Numero { public Numero (double m){ this.m=m; } private double m; public double getM (){ return m; } public void somma (Numero unM){ m+=unM.getM(); } public void sottrai (Numero unM){ m-=unM.getM(); } public int compareTo (Numero unM){ return m<unM.getM() ? -1 : m==unM.getM() ? 0 : 1; } @Override public String toString(){ return m+"\n"; } }
Ecco il codice:
Grazie a tutti dell'aiuto dato.codice:package numerioggetti; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { Numero n1=null; Numero n2=null; Numero nX=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); nX= n1.somma(n2); System.out.print("Somma "+nX); nX=n1.sottrai(n2); System.out.print("Sottrazione "+nX); 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; public double getM (){ return m; } public Numero somma (Numero unM){ Numero nX= new Numero (m+unM.getM()); return nX; } public Numero sottrai (Numero unM){ Numero nX= new Numero(m-unM.getM()); return nX; } public int compareTo (Numero unM){ return m<unM.getM() ? -1: m==unM.getM() ? 0 : 1; } @Override public String toString(){ return m+"\n"; } }
Ciao

Rispondi quotando