Conceptos Básicos de Programación Orientada a Objetos
Clase 3 de 20 • Curso Básico de Programación Orientada a Objetos con JavaScript
Contenido del curso
Objetos, clases y prototipos
Pilares de la POO: abstracción y encapsulamiento
- 9

Abstracción en Programación Orientada a Objetos con JavaScript
02:32 min - 10

Programación Orientada a Objetos con JavaScript: Clases y Prototipos
09:15 min - 11

Encapsulamiento en JavaScript: Uso de Getters y Setters
06:07 min - 12

Encapsulamiento con Getters y Setters en JavaScript
11:20 min - 13

Módulos en JavaScript: Encapsulamiento y Uso Práctico
13:26 min - 14
Playgrounds: Controlar accesos con get y set
Pilares de la POO: herencia y polimorfismo
- 15

Herencia en Programación Orientada a Objetos: Tipos de Estudiantes
06:29 min - 16

Implementación de Herencia en JavaScript con Clases
16:05 min - 17

Polimorfismo en Programación Orientada a Objetos
04:50 min - 18

Polimorfismo en JavaScript: Crear y Publicar Comentarios
12:41 min - 19
Playgrounds: Sobrescribir métodos heredados
Próximos pasos
¿Qué es la programación orientada a objetos?
La programación orientada a objetos (POO) es un paradigma de programación que permite a los desarrolladores modelar el mundo real de una forma eficiente y efectiva. Este enfoque se centra en crear "objetos" que representan entidades del mundo real, y puede ser una herramienta poderosa al crear videojuegos, plataformas, aplicaciones y más.
¿Cómo se utilizan las clases y los objetos?
Las clases son la base de la POO, actuando como planos o moldes para crear objetos. Al definir una clase, especificamos sus atributos (propiedades) y métodos (acciones). Un videojuego de fútbol, por ejemplo, puede tener clases para jugadores, con atributos como el color de la camiseta y métodos como correr o pasar.
Imagina que tienes que crear un equipo completo de jugadores en un videojuego. Cada jugador, como instancia de la clase "Jugador", puede tener diferentes características y comportamientos únicos, adaptándose a las necesidades del juego.
# Ejemplo en Python class Jugador: def __init__(self, nombre, camiseta, velocidad): self.nombre = nombre self.camiseta = camiseta self.velocidad = velocidad def correr(self): print(f"{self.nombre} está corriendo a {self.velocidad} m/s") # Crear un objeto (instancia de Jugador) jugador1 = Jugador("Juan", "Rojo", 5.5) jugador1.correr()
¿Qué es la herencia en POO?
La herencia permite crear nuevas clases basadas en clases existentes, reutilizando y extendiendo sus funcionalidades. Por ejemplo, un "Portero" podría heredar de la clase "Jugador", añadiendo atributos y métodos específicos para su rol. En un videojuego, esto puede simplificar la creación de diferentes roles sin duplicar código.
# Ejemplo de herencia class Portero(Jugador): def __init__(self, nombre, camiseta, velocidad, reflejos): super().__init__(nombre, camiseta, velocidad) self.reflejos = reflejos def atajar(self): print(f"{self.nombre} hace una atajada con reflejos de {self.reflejos}") portero1 = Portero("Carlos", "Verde", 4.5, "altos") portero1.atajar()
¿Qué es el encapsulamiento?
El encapsulamiento permite ocultar y proteger datos dentro de un objeto, exponiendo solo lo que sea necesario a otros objetos. Esto ayuda a mantener la integridad del objeto y evitar accesos no autorizados o cambios en sus datos internos. En un videojuego, podrías querer ocultar la velocidad a la que un jugador corre para que no esté disponible para otras instancias.
# Ejemplo de encapsulamiento class Jugador: def __init__(self, nombre, camiseta, velocidad): self.nombre = nombre self.camiseta = camiseta self._velocidad = velocidad # Atributo privado def get_velocidad(self): return self._velocidad jugador2 = Jugador("Luis", "Azul", 6.2) print(jugador2.get_velocidad()) # Acceso controlado a la velocidad
¿Cómo funciona el polimorfismo?
El polimorfismo permite que objetos diferentes respondan a un mismo método de maneras distintas. Los mensajes pueden ser interpretados según la implementación específica de cada objeto. En el contexto de un videojuego, el entrenador podría asignar una tarea a los jugadores, y cada uno la ejecutaría según su rol y atributos particulares.
# Ejemplo de polimorfismo class Jugador: def ejecutar_tarea(self): pass # Método a ser definido por subclases class Delantero(Jugador): def ejecutar_tarea(self): print("Delantero intenta anotar un gol.") class Defensa(Jugador): def ejecutar_tarea(self): print("Defensa bloquea al oponente.") jugadores = [Delantero(), Defensa()] for jugador in jugadores: jugador.ejecutar_tarea() # Ejecuta acciones específicas de cada tipo de jugador
Animamos a aquellos interesados en la programación orientada a objetos a explorar más este fascinante paradigma. Conocer y aplicar estos conceptos te permitirá crear aplicaciones robustas y mantener un código organizado y eficiente. ¡Sigue aprendiendo, experimentando y creando en el mundo de la POO!