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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con constructores y metodos.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con constructores y metodos.  (Leído 2,502 veces)
jscrip

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Ayuda con constructores y metodos.
« en: 3 Julio 2013, 04:27 am »

Hola, tengo un problema con una clase en la cual hago una consulta de los datos contenidos en un arreglo: "int cannot be deferenced"

Esta es la clase con los constructores:

Código
  1. public class Persona {
  2.  
  3.    private String cedula;
  4.    private String nombres;
  5.    private String apellidos;
  6.    private int edad;
  7.  
  8.    public Persona(String cedula, String nombres, String apellidos, int edad){
  9.        this.cedula=cedula;
  10.        this.nombres=nombres;
  11.        this.apellidos=apellidos;
  12.        this.edad=edad;
  13.    }
  14.  
  15.    public Persona(){
  16.  
  17.    }
  18.  
  19.    /**
  20.      * @return the cedula
  21.      */
  22.    public String getCedula() {
  23.        return cedula;
  24.    }
  25.  
  26.    /**
  27.      * @param cedula the cedula to set
  28.      */
  29.    public void setCedula(String cedula) {
  30.        this.cedula = cedula;
  31.    }
  32.  
  33.    /**
  34.      * @return the nombres
  35.      */
  36.    public String getNombres() {
  37.        return nombres;
  38.    }
  39.  
  40.    /**
  41.      * @param nombres the nombres to set
  42.      */
  43.    public void setNombres(String nombres) {
  44.        this.nombres = nombres;
  45.    }
  46.  
  47.    /**
  48.      * @return the apellidos
  49.      */
  50.    public String getApellidos() {
  51.        return apellidos;
  52.    }
  53.  
  54.    /**
  55.      * @param apellidos the apellidos to set
  56.      */
  57.    public void setApellidos(String apellidos) {
  58.        this.apellidos = apellidos;
  59.    }
  60.  
  61.    /**
  62.      * @return the edad
  63.      */
  64.    public int getEdad() {
  65.        return edad;
  66.    }
  67.  
  68.    /**
  69.      * @param edad the edad to set
  70.      */
  71.    public void setEdad(int edad) {
  72.        this.edad = edad;
  73.    }
  74.  
  75.    public void imprimirInfoPersona(){
  76.        System.out.println("Cedula: "+cedula);
  77.        System.out.println("Nombres: "+nombres);
  78.        System.out.println("Apellidos: "+apellidos);
  79.        System.out.println("Edad: "+edad);
  80.    }
  81. }
  82.  
  83. Y esta es la clase de consultar:
  84.  
  85. //Clase que imprime un menu para consultar datos
  86. public static void consulta(ArrayList registros){
  87.        int op;
  88.        do{                          
  89.         do{
  90.            Menu.imprimirMenuConsulta();        
  91.            op = Ingreso.getInt("Ingrese la opción deseada:");
  92.            if(op<0 || op>5)
  93.                System.out.println("La opción ingresada es incorrecta");
  94.        }while(op<0 || op>5);
  95.  
  96.        switch(op){
  97.            case 1:
  98.                String cedula = Ingreso.getString("Ingrese la cédula:");
  99.                for(int i=0; i<registros.size();i++){
  100.                    Persona p = (Persona)registros.get(i);
  101.                    if(p.getCedula().contains(cedula))
  102.                        p.imprimirInfoPersona();
  103.                }
  104.  
  105.                break;
  106.            case 2:
  107.                String nombre = Ingreso.getString("Ingrese el nombre:");
  108.                for(int i=0; i<registros.size();i++){
  109.                    Persona p = (Persona)registros.get(i);
  110.                    if(p.getNombres().toUpperCase().contains(nombre.toUpperCase()))
  111.                        p.imprimirInfoPersona();
  112.                }
  113.                break;
  114.            case 3:
  115.                String apellido = Ingreso.getString("Ingrese el apellido:");
  116.                for(int i=0; i<registros.size();i++){
  117.                    Persona p = (Persona)registros.get(i);
  118.                    if(p.getApellidos().toUpperCase().contains(apellido.toUpperCase()))
  119.                        p.imprimirInfoPersona();
  120.                }
  121.                break;
  122.            case 4:
  123.                int edad = Ingreso.getInt("Ingrese la edad:");
  124.                for(int i=0; i<registros.size();i++){
  125.                    Persona p = (Persona)registros.get(i);
  126.                    if(p.getEdad().contains(edad)) [b]//Aquí me manda el error int cannot be deferenced[/b]
  127.                        p.imprimirInfoPersona();
  128.                }
  129.                break;    
  130.            case 5:
  131.                    for(int i=0; i<registros.size(); i++){
  132.                        Persona p = (Persona)registros.get(i);
  133.                        p.imprimirInfoPersona();                    
  134.                    }
  135.                break;    
  136.            case 0:
  137.                System.out.println("Regresando al menú principal...");
  138.                break;        
  139.        }
  140.      }while(op!=0);  
  141.    }

¿Saben cual es el error?
Gracias de antemano por su ayuda.


« Última modificación: 4 Julio 2013, 08:04 am por Debci » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Ayuda con constructores y metodos.
« Respuesta #1 en: 3 Julio 2013, 16:05 pm »

Código
  1. Persona p = (Persona)registros.get(i);
  2.                    if(p.getEdad().contains(edad)) //Aquí me manda el error int cannot be deferenced
  3.                        p.imprimirInfoPersona();

getEdad() retorna un int y por lo tanto es un dato primitivo y no puedes tratarlo como un objeto como lo haces. Y suponiendo que retorne un Integer (wrapper class) el método contains no existe.

Con esto bastaria:
Código
  1. Persona p = (Persona)registros.get(i);
  2.                    if(p.getEdad() == edad) //Aquí me manda el error int cannot be deferenced
  3.                        p.imprimirInfoPersona();


« Última modificación: 4 Julio 2013, 08:04 am por Debci » En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
jscrip

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con constructores y metodos.
« Respuesta #2 en: 6 Julio 2013, 03:53 am »

Código
  1. Persona p = (Persona)registros.get(i);
  2.                    if(p.getEdad().contains(edad)) //Aquí me manda el error int cannot be deferenced
  3.                        p.imprimirInfoPersona();

getEdad() retorna un int y por lo tanto es un dato primitivo y no puedes tratarlo como un objeto como lo haces. Y suponiendo que retorne un Integer (wrapper class) el método contains no existe.

Con esto bastaria:
Código
  1. Persona p = (Persona)registros.get(i);
  2.                    if(p.getEdad() == edad) //Aquí me manda el error int cannot be deferenced
  3.                        p.imprimirInfoPersona();

Vaya, funcionó. Muchas gracias por la ayuda.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines