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:
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:
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.
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...
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...
if (persona2.getCasado() == false)
imprimirSolteros(persona2);
- contar cuantas personas son mayores de edad..
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.