Problema al mostrar return de metodo

Iniciado por ;c1v!c, 5 Diciembre 2012, 20:03 PM

0 Miembros y 1 Visitante están viendo este tema.

;c1v!c

Estoy teniendo problemas con la asignacion parece en un metodo dentro de esta clase. cuando hice el debug me dice q la "aux" contiene estos "primerasClases.Fraccion@4a5ab2", osea cualquier cosa.


CLASE FRACCION
Código (java) [Seleccionar]
package primerasClases;

public class Fraccion {

private int num;
private int den;

// constructor
public Fraccion (int a, int b){
num=a;
den=b;
}
//mostrar suma fraccion
public void muestraSumafraccion(){
System.out.println("La suma de la fraccion es: "+Fraccion.fraccionSumar(null, null));
}

//muestra fraccion por pantalla
public void fraccionMostrar(){
System.out.println(num+"/"+den);
}
//obtiene el denominador de la fraccion
public int fraccionDen(){
return den;
}
//suma 2 fracciones, recibe una de ellas como parametro y retorna la
// fraccion resultado
public static Fraccion fraccionSumar(Fraccion f1, Fraccion f2){
int num1 = (f1.num*f2.den) + (f1.den*f2.num);
int den2 = f1.den*f2.den;
//si lo imprimo asi me sale bien la fraccion
// System.out.println(num1+"/"+den2);
//-------> aca esta el error me parece <-------
Fraccion aux = new Fraccion(num1,den2);
return aux;
}



MAIN
Código (java) [Seleccionar]
package primerasClases;

public class FraccionAplicacion {

public static void main(String[] args) {

// creo el objeto fraccion
Fraccion f1 = new Fraccion(2,2);
Fraccion f2 = new Fraccion(2,2);

  System.out.println("La suma es:"+Fraccion.fraccionSumar(f1, f2)+"\n");

}

}


me imprime esto "La suma es: primerasClases.Fraccion@4a5ab2"
en lugar de imprimir la suma de la fracciones

Legnak

creaste el procedimiento fraccionMostrar() para no usarlo? xD

Código (java) [Seleccionar]
package primerasClases;

public class FraccionAplicacion {

public static void main(String[] args) {

// creo el objeto fraccion
Fraccion f1 = new Fraccion(2,2);
Fraccion f2 = new Fraccion(2,2);
Fraccion.fraccionSumar(f1, f2).fraccionMostrar();

}

}

;c1v!c

que grande no conocia esta forma de llamar a ese metodo.
"Fraccion.fraccionSumar(f1, f2).fraccionMostrar();" pasa que ponia ese metodo
y me salia alguna q habia pasado como parametro y no la suma de las fracciones.
gracias...

sapito169

mejor sobre escribe el metodoToString


package primerasClases;

public class Fraccion {

   ...
   public String toString(){      
      return (num+"/"+den);
   }

}

y en el main


system.out.print(new Fraccion(2,2));