Intercambio de fracciones

Buenas, me gustaría que opinaran sobre la salida, de este código. Al probarlo sale f1=3/4 y f2 = 5/6, porque al parecer no realiza ningun intercambio. ¿A qué se debe esto?. ¿Qué se debe modificar, para que realize los intercambios?
class Fraccion
{
private int num den;
         public Fraccion (int miNum, int miDen)
         {
            num = miNum;    den = miDen; }
       public Fraccion (int num, int den)
         {
            num = num;    den = den; }
public String toString(){
return num + "/"+ den;  }
public static void swap1(Fraccion f1, Fraccion f2){
Fraccion temp = f1;
f1=f2;
f2=temp;
swap2(f1);
swap2(f2);  }
public static void swap2(Fraccion f){
f= new Fraccion(f.den, f.num)  }
public static void main(String [] args){
Fraccion f1 = new Fraccion(3,4);
Fraccion f2 = new Fraccion (5,6);
Swap1(f1,f2);
System.out.println("f1=  " + f1 + "f2 = " + f2);
}
}
Agreadecido de antemano

1 respuesta

Respuesta
1
Tienes problemas con los retornos de cada parámetro, te acerco un código que funciona.
Separe todo en dos clases. Fraccion.class e Intercambio.class
public class Intercambio {
    Fraccion f1;
    Fraccion f2;
    public Intercambio(Fraccion f1,Fraccion f2){
        this.f1 = f1;
        this.f2 = f2;
    }
    public Intercambio swap1(){
        // Intercambia Fracciones
        Fraccion temp = f1;
        f1=f2;
        f2=temp;
        // Intercambia
        f1=swap2(f1);
        f2=swap2(f2);  
        return this;
    }
    public Fraccion swap2(Fraccion f){
        System.out.println("Ingresa " + f);
        f= new Fraccion(f.den, f.num);  
        System.out.println("Sale " + f);
        return f;
    }
    public static void main(String [] args){
        Intercambio intercambio = new Intercambio(new Fraccion(3,4),new Fraccion (5,6));
        intercambio.swap1();
        System.out.println("f1=  " + intercambio.f1 + " f2 = " + intercambio.f2);
    }
}
public class Fraccion {
    public int num;
    public int den;
    public Fraccion (int miNum, int miDen){
        num = miNum;    
        den = miDen;
    }
    public String toString(){
        return num + "/"+ den;  }
}
Muchas gracias, me sirvió de bastante ayuda tu código ... gracias! =) Solo me queda una duda. ¿O es posible retornar las fracciones intercambiadas sin necesidad de crear la clase Intercambio?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas