Ciao, ti prego non mi ci mandare e cerca di avere pazienza
... temo che non ci siamo capiti.
Lo scopo del mio esercizietto era quello di utilizzare un metodo a cui andasse passato come parametro non un tipo primitivo, bensì un tipo classe. In questo caso il metodo "maggiore()" confronta due oggetti della classe Razionale per dirmi qual'è il più grande.
Nel mio caso numRaz2 non è una variabile di istanza ma un oggetto della classe Razionale, definito all'interno della classe Oggetto_2, mentre numeroRazionale è l'altro oggetto della classe Razionale, dfinito nella classe Oggetto_1. Quindi non posso dichiararlo come statico e non c'è possibilità di confusione per il compilatore perchè numRaz2 è univoco e si riferisce all'istanza 7/8 di Razionale.
Detto questo, dato che maggiore() è definito nella classe Razionale, come posso confrontare numeroRazionale (5/4) e numRaz2 (7/8)?
codice:
package $6.classi.e.oggetti;
public class Razionale {
private int num;
private int den;
Razionale(int n, int d){
num = n;
den = d;
}
void setNum(int n){
num =n;
}
void setDen(int d){
if(d!=0){
den = d;
}
}
int getNum(){
return num;
}
int getDen(){
return den;
}
void stampaFrazione()
{
System.out.print(num+"/"+den);
}
boolean apparente()
{
return (num%den==0);
}
boolean propria()
{
return (num<den);
}
boolean maggiore (Razionale f)
{
return (num*f.getDen()>f.getNum()*den);
}
}
Classe Oggetto_2
codice:
package $6.classi.e.oggetti;
public class Oggetto_2 {
public static void main(String[] args) {
Razionale numRaz2 = new Razionale (7,8);
}
}
Classe Oggetto_1
codice:
public class Oggetto_1 {
public static void main(String[] args) {
Razionale numeroRazionale;
numeroRazionale = new Razionale (5,4);
System.out.println(numeroRazionale.getNum());
numeroRazionale.setNum(3);
System.out.println( numeroRazionale.getNum());
System.out.print("la frazione ");
numeroRazionale.stampaFrazione();
System.out.println(" è propria: "+numeroRazionale.propria());
System.out.print("la frazione ");
numeroRazionale.stampaFrazione();
System.out.println(" è apparente: "+numeroRazionale.apparente());
Razionale numRaz = new Razionale (2,3);
System.out.print("la frazione ");
numeroRazionale.stampaFrazione();
System.out.print(" è maggiore di ");
numRaz.stampaFrazione();
System.out.print(": ");
System.out.println(numeroRazionale.maggiore(numRaz2));
}
}