Originariamente inviato da Nikopol
Ti ringrazio dei consigli ma il problema rimane.
Anche se ho semplificato il main, rimane sempre quello scritto dal mio professore e quindi non posso modificarlo.
E' questo il punto: se cambio lo stato dell'oggetto posso fare la somma ma la sottrazzione e tutto il resto ne risulteranno innfluenzati; invece assegnare ad un nuovo oggetto il risultato della somma e della sottrazionemodo sarebbe il modo più semplice, però come già detto non posso assolutamente modificare il main. Proprio per questo motivo ho provato ad usare un attributo in più, anche se con scarsi risultati.
Sono giorni che sto impazzendo dietro a questo problema; non riesco proprio a capire dove sto sbagliando.
Non capisco qual'è il problema. Se il main è quello e non può essere modificato allora vuol dire semplicemente che effettui prima la somma e poi la sottrazione per cui alla fine il primo numero conterrà il valore iniziale.
L'istanza della classe Numero contiene un unico valore che può essere incrementato o diminuito.
Un codice compatibile con il main che ti è stato dato è il seguente:

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);
	}
	
	static class Numero {
		
		private double value;
		
		public Numero(double n) {
			value = n;
		}
		
		public void somma(Numero n) {
			value += n.getValue();
		}
		
		public void sottrai(Numero n) {
			value -= n.getValue();
		}
		
		public int compareTo(Numero n) {
			if (value < n.getValue()) {
				return -1;
			} else if (value > n.getValue()) {
				return 1;
			} 
			return 0;
		}

		public double getValue() {
			return value;
		}
		
		@Override
		public String toString() {
			return String.valueOf(value) + "\n";
		}
		
	}

}