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";
}
}