Curso Java POO V. Paso de parámetros. Vídeo 31
Introducción a la Programación Orientada a Objetos en Java
Conceptos Iniciales
- Bienvenida al curso de programación en Java, donde se retoma el tema de los métodos relacionados con la encapsulación en programación orientada a objetos.
- En este video se abordará el trabajo con métodos setter y getter, así como el concepto de paso de parámetros.
Construcción del Objeto Coche
- El objetivo es construir un programa que fabrique coches virtuales, definiendo características comunes y trabajando con métodos setters y getters.
- Se presentan dos clases:
Coche(que define las características del coche) yUsoCoche(la clase principal que contiene el método main).
Métodos Setter y Getter
- Se han declarado variables para características específicas de cada coche, como color, peso total y asientos de cuero.
- Se revisa la diferencia entre los métodos setter (que establecen valores) y getter (que devuelven valores), usando como ejemplo el color del coche.
Ejemplo Práctico: Color del Coche
- En la clase principal se instancia un objeto
miCoche, pero inicialmente muestra que su color es nulo porque no se ha establecido.
- Se explica que esto ocurre porque se comentó la línea que asignaba el color azul al coche.
Paso de Parámetros
- Para permitir elegir un color diferente al azul, se introduce el concepto de paso de parámetros al método setter.
- Al llamar al método setter para establecer el color, ahora se pasará un parámetro junto con la llamada.
Implementación del Método Setter
- Se modifica el método setter para recibir un argumento que representa el color del coche. Esto permite personalizarlo según lo desee el usuario.
- La declaración del argumento dentro del método permite recoger ese valor cuando se llama al método desde una instancia.
Manejo de Errores en Eclipse
- Al intentar usar el nuevo método sin pasarle un argumento adecuado, Eclipse marcará un error indicando que falta información necesaria.
Introducción al Método estableceColor
Uso del método estableceColor
- Se presenta el método
estableceColor, que permite seleccionar y establecer un color en Eclipse. Al usar las flechas del teclado, se puede acceder a este método y automáticamente Eclipse construye el nombre del mismo.
- Eclipse indica que el argumento debe ser de tipo
String, lo que significa que se debe pasar un valor de texto, como "amarillo", para llamar correctamente al método.
Implementación del Método
- El método
estableceColorestá vacío y necesita ser completado. Se menciona la necesidad de inicializar la variablecolordentro de la clase coche.
- La variable
colorse asigna con el valor pasado al método, permitiendo así definir características específicas para cada objeto coche.
Ejecución y Comportamiento del Código
Visualización de Clases
- Se comparan dos clases: una para el coche y otra principal. Al ejecutar el programa Java, se crea un objeto coche y se llama al método
estableceColor.
- Al pasar "amarillo" como parámetro, este valor se almacena en la variable correspondiente dentro del objeto coche.
Manipulación de Variables
- La variable local
colores igualada a "amarillo", reflejando así el color actual del coche.
- Si se cambia el valor a "verde" o "marrón", la consola mostrará estos colores según los parámetros pasados al ejecutar nuevamente el programa.
Problemas de Encapsulación
Violación de Principios OOP
- Se identifica un problema de encapsulación en el código actual. Aunque funciona correctamente, permite manipular directamente propiedades del objeto.
- Se muestra cómo es posible cambiar directamente la propiedad
colorsin utilizar métodos adecuados, lo cual va en contra de las reglas de programación orientada a objetos.
Soluciones Propuestas
- Para evitar esta violación, es necesario encapsular las propiedades utilizando modificadores de acceso como
private. Esto asegura que solo puedan ser manipuladas mediante métodos específicos.
¿Cómo manipular propiedades de objetos en programación?
Encapsulación y métodos en objetos
- Se discute la importancia de utilizar el canal adecuado para manipular las propiedades de los objetos, como el color, a través del método
estableceColor.
- Se menciona que se ha creado una pareja de métodos getter y setter para modificar y obtener el color del objeto tipo coche.
- Se modifica un método getter previamente creado, cambiando su nombre a
dimeDatosGeneralespara devolver información más completa sobre el coche.
Implementación del método dimeDatosGenerales
- El nuevo método
dimeDatosGeneralesdevuelve todas las propiedades comunes del objeto coche, no solo el largo.
- Se utiliza un string concatenado para presentar características como número de ruedas, largo en metros y ancho en centímetros.
- La plataforma del vehículo se describe con detalles específicos: cuatro ruedas, medidas en metros y centímetros.
Pruebas del método implementado
- Se crea un único método getter que proporciona todos los datos generales establecidos en el constructor al crear una instancia de la clase coche.
- Al probar el método, se verifica que devuelve correctamente la información sobre las características físicas del vehículo.
Modificación adicional: Asientos de cuero
- Se introduce la opción de configurar asientos de cuero mediante un par de métodos setter y getter.
Introducción a la Declaración de Variables en Java
Parámetros y Tipos de Datos
- Se declara un parámetro de tipo
stringllamadoasientos cuero, que se utilizará para establecer el color del coche.
- El método setter anterior utilizaba un argumento llamado
color cochepara asignar valor a la variablecolor, estableciendo así el color del coche.
Confusión entre Nombres de Variables
- Se plantea una situación donde el nombre del argumento coincide con el nombre de la variable, lo que puede causar confusión al referirse a ellas.
- Al igual que con el color, se intenta asignar
asientos cueroigual a sí mismo, lo cual genera ambigüedad.
Uso del Operador 'this'
- Para evitar confusiones entre nombres coincidentes, se utiliza el operador
this, que hace referencia a la variable de clase.
- Al anteponer
this.al nombre de la variable, se indica claramente que se está refiriendo a la variable de instancia y no al argumento.
Errores Comunes y Panel Outline en Eclipse
- Se menciona un error relacionado con tipos incompatibles (string vs boolean), destacando la importancia del tipo correcto en las variables.
- El panel "Outline" en Eclipse es útil para visualizar las propiedades y métodos declarados en una clase, facilitando su identificación.
Configuración del Método Setter
- Se explica cómo configurar correctamente un método setter utilizando condiciones (
if) para validar los argumentos recibidos.
- La lógica establece que si el argumento es "sí", entonces
asientos cueroserá verdadero; cualquier otro valor lo establecerá como falso.
Creación del Método Getter
- Se introduce la creación de un método getter llamado
dime asientos, que devolverá información sobre si hay asientos de cuero o no.
Configuración de Asientos en un Coche
Introducción a la Lógica del Método
- Se menciona que el método
returntiene un error debido a la condición delif, lo que impide devolver un valor si no se cumple la condición.
- Es crucial que el método siempre devuelva un valor, ya sea verdadero o falso, para evitar errores en la ejecución.
Funcionamiento de los Métodos
- El método
configuraAsientosrecibe un parámetro tipo string ("sí" o "no") y ajusta la variable de asientos de cuero según el valor recibido.
- Si se pasa "sí", se establece que los asientos son de cuero; cualquier otro valor resultará en asientos de serie.
Implementación en la Clase Principal
- En la clase principal, después de solicitar datos generales y color del coche, se llama al método
configuraAsientos.
- Se utiliza una instancia llamada
miCochepara configurar los asientos y verificar su estado mediante el método correspondiente.
Ejecución y Resultados
- Al ejecutar el programa, se imprime si el coche tiene asientos de cuero o no, dependiendo del parámetro ingresado.
- Se demuestra cómo cambiar el parámetro afecta directamente al resultado impreso sobre los asientos del coche.
Futuras Mejoras y Características