Getter y Setter
Getter y Setter
Introducción
El problema
Imagina que tienes una clase Persona con un atributo edad. Si permitimos que
cualquier parte del programa acceda directamente a este atributo, podríamos tener
problemas de seguridad y consistencia. Por ejemplo, alguien podría asignar un
valor negativo a la edad, lo que no tiene sentido en el contexto real.
Para resolver este problema, se introdujeron los getters y setters. Estos son
métodos especiales que nos permiten controlar el acceso a los atributos de una
clase.
Getters (Accesores)
return edad;
Setters (Mutadores)
if (edad < 0) {
this.edad = edad;
}
}
En resumen mano podemos decir que los getters y setters son métodos
especiales que nos permiten controlar el acceso a los atributos de una clase, de
tal forma que los getters devuelven el valor de un atributo, mientras que los setters
asignan un valor a un atributo después de validarla. Esto nos permite garantizar la
seguridad, consistencia y encapsulación de los datos en nuestra clase.
AHORA SI EMPEZAMOS CON LO BUENO MANO, LOS
EJERCICIOS
Enunciado: Crea una clase Rectangle con un atributo width (ancho) y un getter
para acceder a ese atributo.
Solución:
this.width = width;
return width;
Explicación: En este ejemplo, creamos una clase Rectangle con un atributo width
que se inicializa en el constructor. Luego, creamos un getter getWidth() que
devuelve el valor del atributo width. De esta manera, podemos acceder al valor del
ancho del rectángulo de manera controlada.
Ejercicio 2: Crear una clase con un atributo y un setter
Enunciado: Crea una clase Persona con un atributo nombre y un setter para
asignar un valor a ese atributo.
Solución:
this.nombre = nombre;
Explicación: En este ejemplo, creamos una clase Persona con un atributo nombre
que se asigna mediante un setter setNombre(). En el setter, validamos que el
nombre no sea vacío antes de asignarlo al atributo. De esta manera, podemos
garantizar que el nombre sea siempre válido.
Solución:
this.saldo = saldo;
return saldo;
if (saldo < 0) {
this.saldo = saldo;
Enunciado: Crea un programa que utilice la clase CuentaBancaria para crear una
cuenta bancaria y asignarle un saldo inicial. Luego, utiliza los getters y setters para
acceder y modificar el saldo.
Solución:
cuenta.setSaldo(2000.0);
try {
cuenta.setSaldo(-500.0);
} catch (IllegalArgumentException e) {
}
System.out.println("Saldo final: " + cuenta.getSaldo());
Explicación: En este ejemplo, creamos una cuenta bancaria con un saldo inicial de
1000.0. Luego, utilizamos el getter getSaldo() para acceder al saldo y mostrarlo
por pantalla. Después, utilizamos el setter setSaldo() para asignar un nuevo valor
al saldo. Intentamos asignar un valor negativo, lo que lanza una excepción
IllegalArgumentException. Finalmente, mostramos el saldo final utilizando el getter
getSaldo().
Ejercicio 5: Crear una clase Empleado con atributos y métodos para calcular el
salario
Solución:
this.nombre = nombre;
this.apellido = apellido;
this.salarioBase = salarioBase;
this.horasExtras = 0;
return nombre;
}
public String getApellido() {
return apellido;
return salarioBase;
return horasExtras;
if (horas < 0) {
this.horasExtras = horas;
if (horasExtras > 0) {
return salarioTotal;
}
Explicación:
En este ejercicio, creamos una clase Empleado con cuatro atributos: nombre,
apellido, salarioBase y horasExtras. Los tres primeros atributos se inicializan en el
constructor, mientras que horasExtras se inicializa en 0.
empleado.setHorasExtras(10);
Requisitos:
Requisitos:
Requisitos:
La clase debe tener un constructor que inicialice los atributos titulo y autor.
Los getters getTitulo() y getAutor() deben devolver los valores de los atributos
titulo y autor, respectivamente.
Requisitos: