Con la tecnología de Blogger.

La función miembro toString

Para mostrar una fracción podemos definir una función miembro denominada imprimir:

public void imprimir(){
System.out.println(num+" / "+den);
}

Un objeto de la clase Fraccion llama a la función miembro imprimir para mostrar en la consola (una ventana DOS) los valores que guardan sus miembros dato, num y den, el numerador y el denominador. La función imprimir así definida no nos servirá cuando la clase Fraccion se emplee en un contexto gráfico.

Ahora bien, como vamos a ver a continuación el lenguaje Java nos proporciona una solución a este problema.

Aunque no se define explícitamente, la clase Fraccion deriva de la clase base Object y redefine la función miembro pública toString, cuya tarea es la de dar una representación en forma de texto de la fracción.

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

En la definición de toString vemos que el operador + se usa para concatenar strings (el lenguaje Java convierte automáticamente un dato primitivo en su representación textual cuando se concatena con un string).

Para mostrar en la consola el numerador y el denominador de una fracción (objeto de la clase Fraccion) a, basta escribir:

System.out.println(a);

Lo que equivale a la llamada explícita:

System.out.println(a.toString());

Si queremos mostrar la fracción a en un contexto gráfico g de un applet o de un canvas escribimos:

g.drawString("fracción: "+a, 20, 30);

donde 20, 30 son las coordenadas de la línea base del primer carácter. Esta sentencia equivale a la llamada explícita:

g.drawString("fracción: "+a.toString(), 20, 30);

La redefinición de la función toString devuelve un string un objeto de la clase String que guarda la representación en forma de texto de los objetos de una determinada clase. De este modo, una clase que redefina toString puede emplearse en cualquier ámbito.
Share on Google Plus

Sobre Rafa

Soy un apasionado de las nuevas técnologias, Internet, los videojuegos, la cultura japonesa y de USA.
    Blogger Comment
    Facebook Comment

0 comentarios:

Publicar un comentario

Gracias por comentar ;-)