elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Vector de objetos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Vector de objetos  (Leído 4,634 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Vector de objetos
« en: 13 Junio 2012, 21:39 pm »

Saludos

estoy utilizando el API de Java para crear un vector de objetos tipo Gasto
Código
  1. class Gasto{
  2. public String concepto;
  3. public float monto;
  4. public float iva;
  5. public float total;
  6. public Fecha mifecha;
  7.  
  8. public Gasto(String concepto,float monto,float iva,float total,Fecha mifecha){
  9. this.concepto=concepto;
  10. this.monto=monto;
  11. this.iva=iva;
  12. this.total=total;
  13. this.mifecha=mifecha;
  14. }
  15. }

pero en la clase ManejadorGastos en su método agregar sólo utiliza los atributos concepto,monto y fecha.

Código
  1. class ManejadorGastos{
  2. private Gasto gasto=null;//agregacion
  3. private Vector<Gasto> vector;
  4.  
  5. public ManejadorGastos(){
  6. vector = new Vector<Gasto>();
  7. }
  8.  
  9. public void agregarGasto(String concepto,float monto,Fecha fecha){
  10. Gasto g;
  11. g = new Gasto(concepto,monto,fecha);
  12. vector.add(g);
  13. }
  14. }
pero en g=new Gasto me aparece un error, la clase Fecha ya la tengo implementada pero no la puse porque es muy larga

gracias


En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Vector de objetos
« Respuesta #1 en: 13 Junio 2012, 23:09 pm »

Te dará error porque el constructor Gasto(String, float, Fecha) no está definido, el que tu has puesto tiene dos parámetros más (iva y total).


En línea

m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Re: Vector de objetos
« Respuesta #2 en: 14 Junio 2012, 01:17 am »

Saludos Valkyr

ya le agregue los atributos iva y total pero ahora me sale que iva y total cannot be resolved y no entiendo por qué

Código
  1. class Gasto{
  2. public String concepto;
  3. public float monto;
  4. public float iva;
  5. public float total;
  6. public Fecha mifecha;
  7.  
  8. public Gasto(String concepto,float monto,float iva,float total,Fecha mifecha){
  9. this.concepto=concepto;
  10. this.monto=monto;
  11. this.iva=iva;
  12. this.total=total;
  13. this.mifecha=mifecha;
  14. }
  15. }
  16.  
  17. class ManejadorGastos{
  18. private Gasto gasto=null;
  19. private Vector<Gasto> vector;
  20.  
  21. public ManejadorGastos(){
  22. vector = new Vector<Gasto>();
  23. }
  24.  
  25. public void agregarGasto(String concepto,float monto,Fecha fecha){
  26. Gasto g;
  27. g = new Gasto(concepto,monto,iva,total,fecha);
  28. vector.add(g);
  29. }
  30.  
en el método agregarGasto solo puede tener los parametros concepto, monto y fecha, así me lo exigieron
gracias
« Última modificación: 14 Junio 2012, 01:19 am por m@o_614 » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Vector de objetos
« Respuesta #3 en: 14 Junio 2012, 14:58 pm »

Hola

Si el constructor tiene 5 parámetros al llamarlo tienes que pasarle 5 parámetros, pero éstos deben existir. En tu método agregarGasto le pasas los 5 pero iva y total no están declarados, los otros 3 los recibes por parámetro. Por lo tanto si solo puedes tener los parametros concepto, monto y fecha debes crearte otro constructor con 3 parámatros así:

Código
  1. class Gasto{
  2. public String concepto;
  3. public float monto;
  4. public float iva;
  5. public float total;
  6. public Fecha mifecha;
  7.  
  8. public Gasto(String concepto,float monto,float iva,float total,Fecha mifecha){
  9. this.concepto=concepto;
  10. this.monto=monto;
  11. this.iva=iva;
  12. this.total=total;
  13. this.mifecha=mifecha;
  14. }
  15.  
  16.        public Gasto(String concepto, float monto, Fecha mifecha) {
  17. this.concepto=concepto;
  18. this.monto=monto;
  19.                this.iva=0;
  20. this.total=0;
  21. this.mifecha=mifecha;
  22. }
  23. }
  24.  
  25. class ManejadorGastos{
  26. private Gasto gasto=null;
  27. private Vector<Gasto> vector;
  28.  
  29. public ManejadorGastos(){
  30. vector = new Vector<Gasto>();
  31. }
  32.  
  33. public void agregarGasto(String concepto,float monto,Fecha fecha){
  34. Gasto g;
  35. g = new Gasto(concepto,monto,fecha);
  36. vector.add(g);
  37. }
  38.  

o también puedes tener el método así
Código
  1. public void agregarGasto(String concepto,float monto,Fecha fecha){
  2. Gasto g;
  3.                float iva = 0, total = 0;
  4. g = new Gasto(concepto, iva, total, monto, fecha);
  5. vector.add(g);
  6. }
  7.  

Saludos
En línea

Breakbeat como forma de vida
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Re: Vector de objetos
« Respuesta #4 en: 15 Junio 2012, 19:37 pm »

muchas gracias por tu respuesta satu ya hice las correcciones que me dijiste, ahora solo tengo una última duda, a la clase ManejadorGastos le tuve que implementar un método que me agregara un registro de gastos, otro método que al pasarle la posicion me devolviera el gasto qeu se encuentra en esa posicion y otro método para contar cuantos registro tengo, ya lo hice y no me marca errores pero quiero saber si esta hecho correctamente

Código
  1. class Gasto{
  2. public String concepto;
  3. public float monto;
  4. public float iva;
  5. public float total;
  6. public Fecha mifecha;
  7.  
  8. public Gasto(String concepto,float monto,float iva,float total,Fecha mifecha){
  9. this.concepto=concepto;
  10. this.monto=monto;
  11. this.iva=iva;
  12. this.total=total;
  13. this.mifecha=mifecha;
  14. }
  15.  
  16. public Gasto(String concepto,float monto,Fecha mifecha){
  17. this.concepto=concepto;
  18. this.monto=monto;
  19. this.iva=0;
  20. this.total=0;
  21. this.mifecha=mifecha;
  22. }
  23. }
  24. class ManejadorGastos{
  25. private Gasto gasto=null;
  26. private Vector<Gasto> vector;
  27.  
  28. public ManejadorGastos(){
  29. vector = new Vector<Gasto>();
  30. }
  31.  
  32. public void agregarGasto(String concepto,float monto,Fecha fecha){
  33. gasto = new Gasto(concepto,monto,fecha);
  34. vector.add(gasto);
  35. }
  36.  
  37. public Gasto consultarGasto(int posicion){
  38. for(posicion=0;posicion<vector.size();posicion++){
  39. gasto = vector.get(posicion);
  40. }
  41. return gasto;
  42. }
  43.  
  44. public String dameInfo(){
  45. return gasto.concepto+"\t"+gasto.monto+"\t"+gasto.iva+"\t"+gasto.total+
  46.       "\t"+gasto.mifecha;
  47. }
  48.  
  49. public int dameCuentaGastos(){
  50. int cuenta = 0;
  51. for(int i=0;i < vector.size();i++){
  52. cuenta++;
  53. }
  54. return cuenta;
  55. }
  56. }


gracias
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Vector de objetos
« Respuesta #5 en: 15 Junio 2012, 20:48 pm »

muchas gracias por tu respuesta satu ya hice las correcciones que me dijiste, ahora solo tengo una última duda, a la clase ManejadorGastos le tuve que implementar un método que me agregara un registro de gastos, otro método que al pasarle la posicion me devolviera el gasto qeu se encuentra en esa posicion y otro método para contar cuantos registro tengo, ya lo hice y no me marca errores pero quiero saber si esta hecho correctamente

Código
  1. class Gasto{
  2. public String concepto;
  3. public float monto;
  4. public float iva;
  5. public float total;
  6. public Fecha mifecha;
  7.  
  8. public Gasto(String concepto,float monto,float iva,float total,Fecha mifecha){
  9. this.concepto=concepto;
  10. this.monto=monto;
  11. this.iva=iva;
  12. this.total=total;
  13. this.mifecha=mifecha;
  14. }
  15.  
  16. public Gasto(String concepto,float monto,Fecha mifecha){
  17. this.concepto=concepto;
  18. this.monto=monto;
  19. this.iva=0;
  20. this.total=0;
  21. this.mifecha=mifecha;
  22. }
  23. }
  24. class ManejadorGastos{
  25. private Gasto gasto=null;
  26. private Vector<Gasto> vector;
  27.  
  28. public ManejadorGastos(){
  29. vector = new Vector<Gasto>();
  30. }
  31.  
  32. public void agregarGasto(String concepto,float monto,Fecha fecha){
  33. gasto = new Gasto(concepto,monto,fecha);
  34. vector.add(gasto);
  35. }
  36.  
  37. public Gasto consultarGasto(int posicion){
  38. for(posicion=0;posicion<vector.size();posicion++){
  39. gasto = vector.get(posicion);
  40. }
  41. return gasto;
  42. }
  43.  
  44. public String dameInfo(){
  45. return gasto.concepto+"\t"+gasto.monto+"\t"+gasto.iva+"\t"+gasto.total+
  46.       "\t"+gasto.mifecha;
  47. }
  48.  
  49. public int dameCuentaGastos(){
  50. int cuenta = 0;
  51. for(int i=0;i < vector.size();i++){
  52. cuenta++;
  53. }
  54. return cuenta;
  55. }
  56. }


gracias

Primero el darme cuenta gasto no es necesario hacer eso, basta con hacer un

Código
  1. public int dameCuentaGastos(){
  2. int cuenta = vector.size();
  3.  
  4. return cuenta;
  5. }
  6.  
Segundo el consultar esta mal hecho, fijate como estas iterando, no creo que sea necesario hacer eso.
esto podría ser una posible solucion no lo he probado. Pero no debe tener errores. Si hay algun problema alguien me corrija .
Código
  1. public Gasto consultarGasto(int posicion){
  2.  
  3. gasto = vector.get(posicion);
  4.  
  5. return gasto;
  6. }
  7.  
En línea

m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Re: Vector de objetos
« Respuesta #6 en: 15 Junio 2012, 22:48 pm »

muchas gracias!! creo que ya me quedo claro los errores que tenía, otra manera de hacer la función consulta podría ser algo como esto?????????:

Código
  1. public Gasto consultarGasto(int posicion){
  2. if(0<=posicion && posicion<vector.size()){
  3. gasto = vector.get(posicion);
  4. }
  5. else{
  6. gasto = null;
  7. }
  8. return gasto;
  9. }

En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Vector de objetos
« Respuesta #7 en: 15 Junio 2012, 23:01 pm »

muchas gracias!! creo que ya me quedo claro los errores que tenía, otra manera de hacer la función consulta podría ser algo como esto?????????:

Código
  1. public Gasto consultarGasto(int posicion){
  2. if(0<=posicion && posicion<vector.size()){
  3. gasto = vector.get(posicion);
  4. }
  5. else{
  6. gasto = null;
  7. }
  8. return gasto;
  9. }



Nop, lo ideal sería asi, por si quieres comprobar si es nulo antes de buscar porque igual puede haber un objeto en la posición 0

Código
  1.  
  2. public Gasto consultarGasto(int posicion){
  3. if(vector!=null && posicion>=0){
  4. gasto = vector.get(posicion);
  5. }
  6. else{
  7. System.out.println("No se puede buscar porque no hay elementos en la lista");
  8. }
  9. return gasto;
  10.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C++] Reordenar vector dinámico de objetos
Programación C/C++
Rockmore 2 5,766 Último mensaje 17 Marzo 2011, 19:05 pm
por Rockmore
Vector POO (Problemas)
Programación C/C++
NecBalaam 2 3,307 Último mensaje 22 Agosto 2011, 02:49 am
por NecBalaam
clase Vector
Java
m@o_614 1 1,937 Último mensaje 5 Junio 2012, 22:41 pm
por тαптяα
Añadir objetos vacios a vector para luego modificarlo.
Programación C/C++
anonimo12121 2 2,046 Último mensaje 17 Junio 2013, 12:58 pm
por anonimo12121
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines