Título: Problema de mostrar una lista
Publicado por: Aeros en 9 Agosto 2010, 07:59 am
Hola que tal tengo esta clase vendedor: package Alan; import java.util.*; public class Vendedor { public List <Vendedor > ListaVendedores = new ArrayList <Vendedor >(); public int AutosVend; public Vendedor (String Nombre, int AutosVend ) { this.Nombre = Nombre; this.AutosVend = AutosVend; } public void AgregarVendedor(){ ListaVendedores.add(new Vendedor(Nombre, AutosVend)); } public void MostrarVendedores(){ Iterator iter = ListaVendedores. iterator(); while (iter.hasNext()) System. out. println(iter. next()); } }
Y lo que quiero es que agregue un objeto Vendedor al ArrayList de tipo Vendedor y despues Mostrarlos: package Alan; import java.util.*; public class main { public static void main (String[] args ) { Vendedor[] v = new Vendedor[3] ; v[0] = new Vendedor("Pepe",3); v[1] = new Vendedor("Fede", 4); v[2] = new Vendedor ("Alan",5); v[0].AgregarVendedor(); v[1].AgregarVendedor(); v[2].AgregarVendedor(); v[0].MostrarVendedores(); v[1].MostrarVendedores(); v[2].MostrarVendedores(); } }
y me sale esto por consola :( Alan.Vendedor@19821f Alan.Vendedor@addbf1 Alan.Vendedor@42e816
Gracias!
Título: Re: Problema de mostrar una lista
Publicado por: egyware en 9 Agosto 2010, 08:20 am
Hola, estas algo mál enfoncado. Primero que nada Cuando tu imprimes el valor de un objeto, no saldra su contenido si no saldra el nombre de la clase y un valor. Ahora eso se puede arreglar en la clase Vendedor tu defines , por ejemplo: public Strint toString(){ return Nombre; }
Que cada vez que imprimas un objeto vendedor, saldra el nombre. Ahora sobre la lista, debes darte cuenta que esa lista es unica y exclusivamente para 1 vendedor (osea el objeto) esta no se comparte a nadie más. Ahora si tu deseas compartirla debes usar el modificador static que hara tu variable de ambito local a global (para la clase) Prueba esto. public static List <Vendedor > ListaVendedores = new ArrayList <Vendedor >();
public static void main (String[] args ) { Vendedor[] v = new Vendedor[3] ; v[0] = new Vendedor("Pepe",3); v[1] = new Vendedor("Fede", 4); v[2] = new Vendedor ("Alan",5); v[0].AgregarVendedor(); v[1].AgregarVendedor(); v[2].AgregarVendedor(); v[0].MostrarVendedores(); }
Y saldran todos los vendedores :D Saludos!
Título: Re: Problema de mostrar una lista
Publicado por: Gallu en 9 Agosto 2010, 11:49 am
Hola , me parece que estás un poco confundido con el concepto POO , no es correcto que la clase vendedor tenga una lista de vendedores, una clase es la representación de un objeto, además , public List <Vendedor> ListaVendedores = new ArrayList<Vendedor>(); solo se llena con un objeto cada vez y aparte creas el Vector de vendedores , creo que lo correcto es plantearlo de la siguiente manera . Lo que te contesto egyware es correcto , debes sobreescribir el método toString() heredado de Object para que cuando hagas System.out.println(anOgject) imprima lo que deseas que imprima . Tampoco es correcto usar palabras reservadas como nombres de variables o clases , en tu caso usaste "main2" como nombre de clase mirate los code conventions de java , los encuentras en el siguiente enlace http://www.oracle.com/technetwork/java/codeconv-138413.html import java.util.*; class Vendedor { public int autosVend; public Vendedor (String nombre, int autosVend ){ this.nombre = nombre; this.autosVend = autosVend; } return (this.getNombre() + " ha vendido " + this.getAutosVendidos()+ " carros"); } return this.nombre; } public int getAutosVendidos(){ return this.autosVend; } } class ListaVendedores { private List listaVendedores ; public ListaVendedores (){ } public void addVendedor(Vendedor v){ this.listaVendedores.add(v); } public void mostrarVendedores(){ Iterator iter = this. listaVendedores. iterator(); while (iter.hasNext()) System. out. println(iter. next()); } } class Prueba2 { public static void main (String[] args ) { ListaVendedores listaV = new ListaVendedores(); listaV.addVendedor(new Vendedor("Pepe",3)); listaV.addVendedor(new Vendedor("Fede", 4)); listaV.addVendedor(new Vendedor ("Alan",5)); //ahora mostramos los vendedores que tenemos en la lista listaV.mostrarVendedores(); } }
Título: Re: Problema de mostrar una lista
Publicado por: Aeros en 10 Agosto 2010, 00:09 am
bien aprendido :D
|