Ciao.
Non mi sembra che nessuno ti abbia chiesto di salvare il valore originale dell'istanza n1 della classe Numero.
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.
Sono impazzito su un problema che neanche esisteva.
In definitiva ho scritto questa per la scuola:
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";
}
}
mentre per togliermi la pulce dall'orecchio, ho cambiato il main per fargli fare quello che volevo all' inizio.
Ecco il codice:
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";
}
}
Grazie a tutti dell'aiuto dato.
Ciao