Curso Java. POO IV Getters y Setters. Vídeo 30
¿Cómo modificar las propiedades de un objeto en Java?
Introducción a la programación orientada a objetos
- Se da la bienvenida al curso de programación en Java, recordando el tema anterior sobre la programación orientada a objetos y la encapsulación.
- Se introduce el concepto de métodos setters y getters como herramientas para modificar las propiedades de un objeto.
Encapsulación y su importancia
- Se explica que se ha utilizado el modificador de acceso
privatepara encapsular información en la claseCoche, evitando modificaciones externas no deseadas.
- La encapsulación previene errores, como intentar cambiar el número de ruedas del coche desde fuera de su clase.
Métodos Getters y Setters
- Surge la pregunta sobre cómo acceder a las propiedades encapsuladas, introduciendo los métodos getters y setters como solución.
- Se compara con un sistema modular donde diferentes módulos deben comunicarse entre sí para realizar cambios sin alterar directamente sus propiedades.
Función de los métodos
- Los métodos setters (definidores) permiten establecer valores para las propiedades, mientras que los getters (captadores) permiten obtener esos valores.
Introducción a los Métodos Getter en Programación
Conceptos Básicos de un Método Getter
- Un método getter es público para permitir el acceso desde otras clases. El tipo de dato que devuelve depende de la propiedad que se desea acceder, como un entero o un String.
- El nombre del método puede ser definido por el programador y debe seguir las reglas de nomenclatura, evitando espacios y símbolos no permitidos.
- Se requiere una instrucción
returndentro del método getter para devolver el valor deseado, lo cual será ilustrado con ejemplos prácticos.
Implementación Práctica en Eclipse
- En Eclipse, se observa que intentar acceder a propiedades encapsuladas sin un método getter genera errores. Es necesario crear métodos específicos para cada propiedad.
- Se comenzará creando un método getter para obtener el valor de la propiedad "largo" del objeto coche, siguiendo la sintaxis adecuada.
Sintaxis y Estructura del Método Getter
- La estructura básica incluye el modificador de acceso
public, seguido del tipo de dato que se va a devolver. Por ejemplo, si se quiere devolver un número entero o una cadena concatenada.
- Si se desea retornar una frase en lugar de solo un número, se utilizará
public Stringcomo declaración del método.
Ejemplo Detallado del Método Getter
- Al definir el nombre del método (por ejemplo,
dimeLargo), es importante abrir llaves y asegurarse de incluir la instrucciónreturn.
- La instrucción
returndebe devolver una cadena que incluya tanto texto como la variable correspondiente (en este caso "largo"), lo cual es posible ya que estamos dentro de la misma clase.
Uso del Método Getter en Contexto
- Una vez creado el método getter, se procederá a instanciar un objeto coche en otra clase utilizando su constructor para establecer valores iniciales.
- Al instanciar el objeto coche con valores predeterminados (como cuatro ruedas y largo 2000), ahora podemos utilizar el método
dimeLargopara obtener su longitud.
Acceso a Propiedades de Objetos en Programación Orientada a Objetos
Métodos Getter y Encapsulación
- El código accede a un método público tipo getter que devuelve la longitud del coche, mostrando que se puede acceder a las propiedades de los objetos mediante métodos.
- La encapsulación evita errores al programar, impidiendo el acceso directo a propiedades privadas, lo cual es fundamental en la programación orientada a objetos.
- Las propiedades encapsuladas solo pueden ser accedidas o modificadas mediante métodos específicos, asegurando una manipulación correcta de los datos.
Estructura de la Clase Coche
- Se establece una clase "Coche" con propiedades comunes y un método constructor para definir su estado inicial.
- La clase define características comunes para todos los coches, como el largo, pero también se deben considerar características variables específicas de cada coche.
Características Variables del Coche
- Se discute la necesidad de agregar características adicionales como asientos y aire acondicionado que varían entre diferentes coches.
- Se menciona que el peso final del coche será diferente dependiendo de sus características individuales.
Modificación de Propiedades
- Se cambia el nombre de la variable "peso" a "peso plataforma" para diferenciarlo del peso total del coche.
- Se declaran nuevas variables para establecer propiedades variables como color, peso total y si tiene asientos de cuero o climatizador.
Métodos Setter
- Los métodos setter son utilizados para modificar valores de las propiedades. Su sintaxis incluye un modificador público para permitir acceso desde otras clases.
Métodos Getter y Setter en Programación
Introducción a los Métodos Getter y Setter
- Un método getter devuelve un valor, lo que implica la necesidad de una instrucción
returndentro del método.
- Un método void no devuelve ningún valor y, por lo tanto, no incluye la instrucción
return. Esto puede causar confusión para quienes inician en programación.
Implementación de un Método Setter
- Se utilizará un método setter para modificar el color de un coche, estableciendo inicialmente todos los coches como azules.
- Aunque se podría establecer el color azul en el constructor, se opta por implementar el setter primero para entender su funcionamiento.
Sintaxis del Método Setter
- La sintaxis del método incluirá el modificador
public, seguido devoidpara indicar que no devuelve nada. El nombre del método seráestableceColor.
- Dentro del método, se asignará el valor "azul" a la variable
color, previamente definida como tipo String.
Diferencias entre Getter y Setter
- Un setter modifica una propiedad sin devolver datos (utiliza
void), mientras que un getter debe devolver un valor y requiere la instrucciónreturn.
- Se ha modificado correctamente el color del coche mediante el setter; ahora es necesario crear un getter para obtener este color.
Creación de un Método Getter
- Para informar sobre el color del coche, se creará un nuevo método getter con la sintaxis similar al anterior.
- Este getter devolverá una cadena que indica "El color del coche es", concatenando con la variable
color.
Uso Práctico en Clase Principal
- En la clase principal, se instanciará un objeto de tipo coche utilizando su constructor.
- Después de instanciarlo, se modificará su color usando el método setter y luego se imprimirá en consola cuál es ese color.
Acceso a Métodos desde Instancias
¿Cómo se utilizan los métodos getter y setter en programación?
Introducción a los métodos de acceso
- Se presenta el uso de un método para obtener el color de un objeto, utilizando la sintaxis
miCoche.dimeColor(). También se menciona otro método llamadodimeLargo()que podría ser utilizado.
- Al ejecutar el programa, se espera que la consola muestre "El color de tu coche es azul". Esto indica que el método ha funcionado correctamente.
Problemas al no utilizar métodos setters
- Si se comenta la línea donde se establece el color del coche, al imprimirlo, mostrará "El color del coche es null" porque no se ha definido previamente un valor para esta variable.
- La variable
colorestá vacía ya que fue definida pero nunca inicializada. Esto resalta la importancia de establecer valores antes de intentar acceder a ellos.
Encapsulamiento y buenas prácticas
- Se discute la falta de encapsulamiento en las variables definidas, mencionando que deberían tener el modificador
privatepara proteger su acceso.