Con la tecnología de Blogger.

La función miembro toString

Si los miembros dato de la clase Lista son privados (private) hemos de definir una función que hemos denominado imprimir para mostrar los valores que guardan los miembros dato de los objetos de la clase Lista.

public class Lista {
private int[] x; //array de datos
private int n; //dimensión
//...
public void imprimir(){
for(int i=0; i<n; i++){
System.out.print("\t"+x[i]);
}
System.out.println("");
}

La llamada a esta función miembro se efectúa desde un objeto de la clase Lista

Lista lista=new Lista(new int[]{60, -4, 23, 12, -16});
System.out.println("Mostrar la lista");
lista.imprimir();

Sustituimos la función miembro imprimir por la redefinición de toString. Para redefinir una función, tiene que tener el mismo nombre, los mismos modificadores, el mismo tipo de retorno y los mismos parámetros y del mismo tipo en la clase base y en la clase derivada. Para evitar errores, el mejor procedimiento es el de ir al código de la clase base Object, copiar la línea de la declaración de toString, pegarla en la definición de nuestra clase, y a continuación definir dicha función.

public class Lista {
private int[] x; //array de datos
private int n; //dimensión
//...
public String toString(){
String texto="";
for(int i=0; i<n; i++){
texto+="\t"+x[i];
}
return texto;
}

La llamada a la función toString se realiza implícitamente en el argumento de la función System.out.println, o bien, al concatenar un string y un objeto de la clase Lista.

Lista lista=new Lista(new int[]{60, -4, 23, 12, -16});
System.out.println("Mostrar la lista");
System.out.println(lista);
public class Lista {
private int[] x; //array de datos
private int n; //dimensión
public Lista(int[] x) {
this.x=x;
n=x.length;
ordenar();
}
public double valorMedio(){
int suma=0;
for(int i=0; i<n; i++){
suma+=x[i];
}
return (double)suma/n;
}
public int valorMayor(){
return x[n-1];
}
public int valorMenor(){
return x[0];
}
private void ordenar(){
int aux;
for(int i=0; i<n-1; i++){
for(int j=i+1; j<n; j++){
if(x[i]>x[j]){
aux=x[j];
x[j]=x[i];
x[i]=aux;

}
}
}
}
public String toString(){
String texto="";
for(int i=0; i<n; i++){
texto+="\t"+x[i];
}
return texto;
}
}
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 ;-)