Programación en castellano
Inicio > Foros > Java (básico) > Como muestro el atributo de un objeto almacenado en un Vector
-Foros de debate

Java (básico)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Como muestro el atributo de un objeto almacenado en un Vector
Enviado por dave07 el día 7 de mayo de 2008

Hola, soy nuevo por aqui asi que saludos a todos, quisiera que me ayuden en como resolver esto, tengo una clase Persona y un vector, en el Vector guardo un objeto de esa clase, luego quiero mostrar los atributos de ese objeto por System.out..... y nose como...les dejo lo que tengo armado...

package miaplicacion;

import java.util.*;

class Persona{

String nombre;
String apellido;
String edad;



}

public class Main {


public static void main(String[] args) {
Vector vect1 = new Vector();
Persona abuela= new Persona();
abuela.nombre="Nona";
vect1.add(abuela);
System.out.println((Persona)vect1.elementAt(0));

}

}

GRACIAS.
DAVID

 
Re: Como muestro el atributo de un objeto almacenado en un Vector
Enviado por Carlos Corona el día 7 de mayo de 2008

Pues tienes varias opciones, la primera y mas obvia es llamar uno a uno los atributos de la clase, aunque para esto deben ser publicos... harias algo como esto:

System.out.println( ((Persona)vect1.elementAt(0)).nombre + ((Persona)vect1.elementAt(0)).apellido + ((Persona)vect1.elementAt(0)).edad );

Por ejemplo, solo fijate en los parentesis para no tener problemas.

Otra forma seria que tu clase Persona tuviera metodos de consulta (observadores) como:

public String getNombre(){ return nombre; }
public String getApellido(){ return apellido; }
public int getEdad() { return edad; }

y tendrias un codigo muy similar solo que en lugar de poner ((Persona)vect1.elementAt(0)).nombre, pones ((Persona)vect1.elementAt(0)).getNombre()

Esto funciona mejor debido a que no rompes con las reglas del encapsulado, pero aun no es optimo

Otra cosa que puedes hacer es sobreescribir el método toString que cualquier Object tiene, lo unico que haces es declararlo dentro de tu clase Persona como sigue:

class Persona{
...
public String toString(){
return nombre+" "+apellido+" "+edad;
}
...
}

Este metodo se invoca automáticamente cada que necesitas un String, por lo que en tu main tendrias que poner solo algo así:

System.out.println( (Persona)vect1.elementAt(0) );

Ya con eso mandas a escribir el nombre, los apellidos y la edad sin cansarte tanto y manteniendo el encapsulamiento de la clase.

Espero que estos tips te sean utiles

 


Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados