Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas al compilar

Estas en el tema de Problemas al compilar en el foro de Java en Foros del Web. Buenos días. Soy novato en esto del java y no se porque me está pasando esto. tengo dos clases un clase llamada Persona que contiene ...
  #1 (permalink)  
Antiguo 03/03/2010, 03:21
 
Fecha de Ingreso: junio-2007
Mensajes: 53
Antigüedad: 16 años, 10 meses
Puntos: 0
Problemas al compilar

Buenos días.

Soy novato en esto del java y no se porque me está pasando esto.

tengo dos clases un clase llamada Persona que contiene lo siguiente:

public class Persona{
private String complexion;
private int edad;
private float peso;
//El constructor de la clase
public Persona(String ecomplex, int eedad, float epeso){

complexion = ecomplex;
edad = eedad;
peso = epeso;

}
public int getEdad(){
return edad;
}
public float getPeso(){
return peso;
}
public String getComplexion(){
return complexion;
}
public void incrementa1Edad(){
edad += 1;
}
public void incrementa1Peso(){
peso += 1;
if(peso > 90){
complexion ="Grande";
}
}
private void verPersona(){
System.out.println("Su complexion es: "+complexion+" Su edad es: "+edad+" Su peso es: "+peso);


}
}

y otra clase que se llama :
public class TestPersona{
public static void main(String[] args){
Persona persona1 = new Persona("Pequeña",18,70.0);
Persona persona2 = new Persona("Normal",50,90.0);
persona1.incrementa1Edad();
persona2.incrementa1Edad();
persona1.incrementa1Peso();
persona2.incrementa1Peso();
presona1.verPersona();
persona2.verPersona();
}
}

No se porque al compilar me muestra errores"cannot find symbol constructor Persona(java.lng.String, int, dounle)., no se que defino mal o que concepto tengo equivocado.

Última edición por KKarloss; 03/03/2010 a las 03:36
  #2 (permalink)  
Antiguo 03/03/2010, 03:57
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Problemas al compilar

Los float tienen una construcción específica.... float f1 = 1.04F (por ejemplo)

LO que le has metido como dato es un double, así que rehaz el constructor con double en vez de float.
  #3 (permalink)  
Antiguo 03/03/2010, 04:13
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas al compilar

Cita:
Iniciado por Fuzzylog Ver Mensaje
Los float tienen una construcción específica.... float f1 = 1.04F (por ejemplo)

LO que le has metido como dato es un double, así que rehaz el constructor con double en vez de float.
es mas fácil (y aveces mas eficiente) hacer un parseo cuando crea el objeto; se hace de la siguiente manera

Persona persona1 = new Persona("Pequeña",18,70.0f);
Persona persona2 = new Persona("Normal",50,90.0f);

coloca una f luego del numero, pero aparte de eso tiene otro error el método verPersona(); es privado así que no podrá llamarlo desde test persona (ojo con eso)
  #4 (permalink)  
Antiguo 03/03/2010, 04:24
 
Fecha de Ingreso: junio-2007
Mensajes: 53
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Problemas al compilar

Gracias Fuzzylog y adixsugar, no habia caido en este detalle y llevo varios dias dandole vueltas al compilado de la clase. Al final os voy a tener que dar un sueldo. Aprovecho para haceros un par de preguntas sobre java que me rondan la cabeza.
¿por qué los atributos tienen que ser privados?¿por qué en la definición del constructor no tiene tipo de retorno asociado?
  #5 (permalink)  
Antiguo 03/03/2010, 04:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas al compilar

los atributos no tienen que ser por obligación privados pueden ser públicos, esto tiene que ver mas con los principios de la POO (programación orientada a objetos) y específicamente sobre el encapsulamiento de datos pero se pueden declarar privados eso si.... en java es poco común, poco recomendable y en verdad creo que no se utiliza casi,

con el constructor pasa lo mismo si usted le define un tipo de dato el puede retornar este tipo de dato como sucede en C++ lo que pasa es que por principio se declara vació (aca si no recuerdo que principio de POO hace referencia)
  #6 (permalink)  
Antiguo 03/03/2010, 10:42
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Problemas al compilar

Wenas

Nadie dice que los atributos tengan que ser privados, pueden ser public. Depende del nivel de privacidad (nunca mejor dicho) que quieras conseguir. Es mas habitual que una clase defina atributos privados y metodos set y get para obtenerlos. Por ejemplo.

Código:
public class Pepito
{
    private int id = 0;
    public int getId()
    {
        return id;
     }
     public void setId(int n)
     {
          this.id = n;
      }
}
Lo he puesto asi para que te sea mas claro de ver, pero en realidad, el private se puede omitir (es la opcion por defecto) y el this tambien. Pero creo que asi lo veras mas claro.
Y en otra clase que haga uso de Pepito

Código:
.........
Pepito p = new Pepito();
p.setId(8);
System.out.println("el id de pepito es :" + p.getId());
.....
En medio de public y private hay un intermedio que es protected (esto significa que solo las clases que hereden de pepito podran ver o usar esos atributos)

Si es recomendable o no, la respuesta es depende.

Por otro lado, el constructor SI tiene un retorno asociado, Un objeto de esa clase. Lo que pasa es que no se pone.

Saludos.
__________________
--
NO. Tu problema no es urgente.

CCFVLS
  #7 (permalink)  
Antiguo 03/03/2010, 14:09
 
Fecha de Ingreso: junio-2007
Mensajes: 53
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Problemas al compilar

Muchas gracias a todos por vuestras aportaciones que me ha clarifficado un poco más el lenguaje Java.

saludos.

Etiquetas: compilar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:34.