Autor Tema: Java Definir atributo de clase tipo boolean e interpretar archivo.class CU00623B  (Leído 8691 veces)

HectorCP

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Buenas noches:

En el ejercicio CU00623B del tutorial aprenda Java como si estuviera en primero el resultado que obtengo entiendo que está bien, pero me han surgido dos dudas:

-En el estado civil de la persona (Casado), a determinar si es true o false se llama "definir el atributo de una clase"? Como y en que lugar del codigo definiria este atributo para que me diera la opcion de true y de false (ambas)?

-La segunda pregunta es como "interpreto" (tampoco recuerdo si se dice asi) este proyecto

Muchas gracias


« Última modificación: 24 de Junio 2017, 19:18 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
El atributo casado es de tipo boolean.
Un dato booleano solo admite dos valores posibles true o false

Es decir, al declarar una clase Persona:
Código: [Seleccionar]
public class Persona
{
    //Atributos de la clase
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private String dni;

    //Constructor por defecto
    public Persona()
    {
         nombre="";
         apellidos="";
         edad=0;
         casado=false;
         dni="";
    }
}

Lo primero que hacemos es declarar los atributos, y de que tipo son.
Los declarados como String, estamos diciendo que los datos serán de "tipo texto".
Los declarados como int estamos diciendo que los datos serán valores numéricos enteros, es decir, sin decimales

Los declarados como boolean, estamos estableciendo que son valores que indicarán una respuesta directa true/false, es decir --> verdadero/falso, si/no,...

Las personas pueden tener muchos nombres distintos, muchas edades distintas... pero respecto a la información de "estar casado", solo hay dos posibilidades: o está casado (true), o no lo está (false)

No hay más opciones y para estos casos, los datos de tipo boolean son los más útiles porque representan esta doble posibilidad excluyente.

En el constructor por defecto, a este dato boolean habrá que darle un valor, ya sea true o false.
Elegir uno u otro depende del programador y en principio es irrelevante el que se escoja, ya que normalmente evitaremos trabajar con un objeto cuyos atributos no han sido correctamente establecidos, ya sea usando los setters, ya sea usando un constructor más completo.

Todo esto se entiende mejor cuando avances más en el curso. Verás que para una clase podemos definir todos los constructores que queramos, no solo el constructor por defecto.

Por ejemplo:
Código: [Seleccionar]
public class Persona
{
    //Atributos de la clase
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private String dni;

    //Constructor por defecto
    public Persona()
    {
         nombre="";
         apellidos="";
         edad=0;
         casado=false;
         dni="";
    }

//Constructor completo con parametros
    public Persona(String nombre, String apellidos, int edad, boolean casado, String dni)
    {
         this.nombre=nombre;
         this.apellidos=apellidos;
         this.edad=edad;
         this.casado=casado;
         this.dni=dni;
    }
}

Esta clase tiene dos constructores.
Cuando en el código yo quiera construir objetos Persona, puedo elegir usar un constructor u otro.

Con el constructor por defecto, estaríamos instanciando un objeto Persona sin datos definidos, es decir, sin nombre, ni dni, la edad a valor 0 y establecida como soltera.
Código: [Seleccionar]
Persona persona1 = new Persona(); Con este objeto, no se podría trabajar bien, no contiene datos útiles... para trabajar con el antes tendrá que pasar por un proceso mediante el cual, usando los setters (persona1.setNombre("Andres"), persona1.setEdad(34), persona1.setCasado(true) ....), le demos unos datos válidos.

En cambio, si utilizo el constructor más completo con el cual le paso ya los argumentos necesarios para establecer los valores de los atributos...
Código: [Seleccionar]
Persona persona2 = new Persona("Susana", "Lopez", 25, false, "67824310-K"); ... ya obtengo directamente un objeto Persona con el que poder trabajar. Ya no necesitamos usar los setters para establecer valores.
Ya puedo, ayudandome con los getters..., hacer operaciones con este objeto:
- sacar un listado de personas solteras...
Código: [Seleccionar]
if (persona2.getCasado() == false)
     imprimirSolteros(persona2);
- contar cuantas personas son mayores de edad..
Código: [Seleccionar]
int contadorAdultos = 0;
if (persona2.getEdad() >= 18)
     contadorAdultos = contadorAdultos + 1;

-Etc...


Repito que todo esto lo irás entendiendo mejor conforme avanzas en el curso.
Al principio cuesta un poco, no tanto entender lo que se está haciendo sino el por qué ...., hasta que al haber visto más temas se tiene una visión más global de todo y entonces empezamos a "atar cabos" y comprender mejor el conjunto.
« Última modificación: 29 de Mayo 2017, 12:24 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

HectorCP

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Muchisimas gracias. Una explicacion completisima.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".