Curso Java. POO I. Vídeo 27
¿Qué es la Programación Orientada a Objetos?
Introducción a la Programación Orientada a Objetos
- El presentador da la bienvenida y menciona que este capítulo es fundamental en el curso de programación en Java, centrándose en la programación orientada a objetos.
- Se explica que el video será teórico y no se utilizará Eclipse, lo cual puede resultar aburrido para algunos estudiantes.
- Se reconoce que entender la programación orientada a objetos es crucial; saltarse esta parte puede llevar a una comprensión superficial del código.
Importancia de Comprender los Conceptos
- La falta de entendimiento sobre programación orientada a objetos puede hacer que un programador memorice sintaxis sin comprender su aplicación real.
- Entender estos conceptos permite saber qué se está haciendo al programar, incluso si no se conoce toda la sintaxis de Java.
Tipos de Lenguajes de Programación
- Se introducen dos grandes grupos de lenguajes: antiguos (orientados a procedimientos) y modernos (orientados a objetos).
- Los lenguajes antiguos surgieron en las décadas de 1960 y 1970, mientras que los lenguajes orientados a objetos son más recientes y ampliamente utilizados hoy en día.
Diferencias entre Lenguajes Antiguos y Modernos
- Los lenguajes orientados a procedimientos generan códigos largos y difíciles de depurar; esto complicaba el trabajo colaborativo entre programadores.
- La dificultad para reutilizar programas escritos en lenguajes antiguos llevó al desarrollo de lenguajes orientados a objetos.
Evolución hacia la Programación Orientada a Objetos
- La transición hacia lenguajes orientados a objetos busca simplificar la programación al modelar el código según comportamientos observables en objetos reales.
Evolución de los Lenguajes de Programación
Introducción a los Ordenadores y el Lenguaje BASIC
- En los años 80, los ordenadores como el Spectrum eran comunes en muchos hogares, utilizando casetes para cargar juegos. El lenguaje utilizado para programar estos juegos era BASIC.
Desventajas del Lenguaje BASIC
- Uno de los problemas del lenguaje BASIC es que generaba unidades de código muy grandes, lo que complicaba la programación de aplicaciones complejas debido a la dificultad para manejar un código extenso.
- La reutilización del código era limitada; una vez creado un programa, reutilizar ese mismo código en otro proyecto resultaba complicado y costoso.
- Un fallo en una línea de código podía hacer que todo el programa fallara, lo cual requería mucho tiempo y esfuerzo para solucionar.
- Se introdujo el término "código espagueti" para describir la confusión generada por instrucciones como "go to", que dificultaban seguir el flujo lógico del programa.
Problemas con Código Espagueti
- El uso excesivo de instrucciones "go to" creaba un laberinto en el código, haciendo difícil localizar errores. Esto se volvía aún más problemático en aplicaciones con miles de líneas de código.
Soluciones: Programación Orientada a Objetos
- Para abordar estos problemas, se desarrollaron lenguajes orientados a objetos que trasladan características del mundo real al ámbito digital, facilitando así la depuración y reutilización del código.
Características de Objetos en Programación
- Los objetos tienen estado (por ejemplo, un coche puede estar parado o circulando), comportamiento (puede arrancar o frenar), y propiedades (color, peso).
Ejemplo Práctico: Un Coche
- Un coche puede tener diferentes estados y propiedades como color y tamaño. Su comportamiento incluye acciones como acelerar o girar.
Ventajas de la Programación Orientada a Objetos
- La modularización permite dividir programas en partes más manejables (módulos o clases), facilitando su comprensión y mantenimiento. Por ejemplo, un coche está compuesto por varios objetos (ruedas, motor).
Conceptos Clave de la Programación Orientada a Objetos
Reutilización de Componentes
- En la fabricación de coches, algunas partes son reutilizables en modelos similares, como los amortiguadores. Esto ilustra el concepto de herencia en programación orientada a objetos.
Manejo de Errores
- Si hay un fallo en una línea de código, no necesariamente se cae todo el programa. Este comportamiento refleja cómo los errores pueden ser controlados sin afectar al funcionamiento total del sistema.
Tratamiento de Excepciones
- La programación orientada a objetos permite manejar excepciones, lo que significa que se pueden anticipar y gestionar posibles errores futuros sin que el programa deje de funcionar.
Encapsulamiento
- Los componentes del coche (como la caja de cambios y las ruedas) funcionan independientemente entre sí. Cada objeto no necesita conocer la implementación interna del otro, lo que promueve un diseño más limpio y modular.
Modularización vs. Programación Procedimental
- Al comparar lenguajes orientados a procedimientos con lenguajes orientados a objetos, se observa que en un sistema modular (ejemplo: equipo de música), si una parte falla (como el ecualizador), solo esa parte necesita reparación, permitiendo seguir utilizando otras funciones del sistema.
Ventajas de la Modularización
¿Qué es un programa en Java?
Estructura de un programa en Java
- Un programa creado en Java consiste en un grupo de clases interconectadas que funcionan como una unidad.
- Los programas simples que se han elaborado hasta ahora constan generalmente de una única clase, enfocándose en aprender la sintaxis básica del lenguaje.
- Sin embargo, la mayoría de los programas, por sencillos que sean, incluirán dos o más clases para su correcto funcionamiento.
Términos clave en programación orientada a objetos
- La programación orientada a objetos introduce vocabulario técnico que puede resultar intimidante para los principiantes, llevando a algunos a abandonar el aprendizaje.
- Algunos términos importantes incluyen: clase, objeto, instancia de clase y encapsulamiento. Estos conceptos son fundamentales para entender cómo funciona la programación orientada a objetos.
Avance hacia el próximo contenido