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 PythonclassJugador:def__init__(self, nombre, camiseta, velocidad): self.nombre = nombre
self.camiseta = camiseta
self.velocidad = velocidad
defcorrer(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 herenciaclassPortero(Jugador):def__init__(self, nombre, camiseta, velocidad, reflejos):super().__init__(nombre, camiseta, velocidad) self.reflejos = reflejos
defatajar(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 encapsulamientoclassJugador:def__init__(self, nombre, camiseta, velocidad): self.nombre = nombre
self.camiseta = camiseta
self._velocidad = velocidad # Atributo privadodefget_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 polimorfismoclassJugador:defejecutar_tarea(self):pass# Método a ser definido por subclasesclassDelantero(Jugador):defejecutar_tarea(self):print("Delantero intenta anotar un gol.")classDefensa(Jugador):defejecutar_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!
Clase: Representación de métodos y atributos que representan a una entidad.
Objeto: Instancia de una clase.
Herencia: Crear nuevas clases con características similares a partir de otras.
Encapsulamiento: Esconder datos que solo pueden ser accedidos por la clase.
Polimorfismo: Un objeto puede comportarse de muchas formas, ejemplo: En herencia, las clases hijas pueden comportarse como su clase padre y viceversa.
Clave!
Genial, Le agrego a la lista como aporte:
Abstracción: Es cuando hacemos un análisis a nuestros elementos para obtener las características que tienen en común y así empezar a definir nuestras clases.
¿Qué es un objeto?
Podemos tomar como ejemplo objetos de la vida real, por ejemplo un lápiz, una pluma o un borrador. Cada uno de ellos tendrá datos únicos de los cuales podremos construir sus clases
Las clases es la forma en que se van obtener información la información de cada objetos, a estos se les llama atributos. A partir de estas clases podemos crear objetos, a esto se le llama Instanciar de una clase.
Atributos: Son las propiedades que tendrán cada uno de los objetos creados con nuestras clases, por ejemplo en la clase lápiz tiene como propiedades o atributos un color, textura, tamaño, forma de la punta, etc. Para el siguiente ejemplo tomamos una clase Usuario y le ponemos como atributo "nombre"
Metodos: Son simples funciones que existen dentro de la clase que determinan las acciones, por ejemplo en el caso del borrador tiene una función de borrar, para el lápiz tiene la función de escribir al igual que la pluma. Para el siguiente ejemplo de codigo ejecutaremos un metodo para saludar
En la POO hay 4 pilares que debemos comprender
Herencia: Con la herencia puedes crear una clase que sea hijo o una copia de otra clase, al heredar una clase se tiene todos los metodos y atributos de la clase padre, podras modificarlas solo en caso de ser necesario. Funciona como una jerarquia de lo mas general a lo mas especifico.
Encapsulamiento: Esta significa restringir u ocultar el acceso a los datos dentro de la misma clase al "mundo exterior", usualmente solo se modifican en la misma clase. Existen tres clases de encapsulamiento.
Abstracción: La abstracción son los datos necesarios de una clase, por ejemplo si se elabora el menu de un restaurante, es necesario el nombre del platillo y precio, otros datos como el color favorito del chef no son necesarios. Esto debe ir de lo mas general a lo especifico
Polimorfismo: Es la habilidad de tener diferentes comportamientos o formas basados en que subclase se esta utilizando, relacionado a la herencia
No es un aporte ( código), pero, me parece que, éste video lo tienen que ver muchos padres de familia. Por qué ? Porque, muchas veces ven a sus hijos jugar videojuegos(fifa); por lo que creen que es perder el tiempo. Me parece que si al niño le explicas cómo funciona la creación del videojuego ( lo que vemos en el video), el niño se podrá interesar desde muy temprano por la programación.
No todo videojugador es programador ni todo programador es videojugador. Es decir, que me guste jugar no quiere decir que me interese saber como esta hecho por dentro el juego. Me pasa con los coches, me gustan pero nada que me interesa saber el detalle de como se mueven. Por otro lado creo firmemente que pasar toda la tarde jugando en una consola si es perder el tiempo. Tanto lo creo que en lugar de estarme coronando por quinta vez con el Santos estoy aquí estudiando
Extraño a Anahí Salgado. Es la mejor maestra de programación de la historia. :'(
Pilares de la POO
Encapsulamiento: Quiere decir que oculta datos mediante código.
Abstracción: Es como se pueden representar los objetos en modo de código.
Herencia: Es donde una clase nueva se crea a partir de una clase existente.
Polimorfismo: Se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos.
Me gusta ejemplo de jugadores futbol para explicar que es programacion orientada a objetos. Ademas las graficas que aparezcan ayudan entender y memorizar mas. Una clase muy dinamica - esta energia motiva para aprender mas.
POO
Encapsulamiento
Abstracción
Herencia
Polimorfismo
Excelente, Aruren.
Tu aporte está genial.
Maravillosa explicación de Anahí.
El DT se parece a Bianchi xD
==Programación orientada a objetos== entandamos como funciona: en un ejemplo de crear un juego de fútbol.
Con la POO podemos hacer una abstracción de todo esto.
la Abstracción se llamara
Clase y esta se compondrá de:
==Atributos== serán todas las propiedades que corresponderán al objeto
==métodos== Son todas las acciones que tiene que hacer el objeto.
Que es un ==Objeto== un objeto es la base para POO los objetos serán las instancias de las clases lo que quiere decir que la clase sera el molde de lo que sera nuestro objeto.
En POO también podemos utilizar otro concepto que también es muy importante este es la herencia.
La ==herencia== nos ayudara a crear nuevas clases a partir de otras.
Otro concepto importante en POO es el
==encapsulamiento== este puede significar esconder algo.
Por ultimo
==polimorfismo== significa muchas formas, Es la capacidad de los objetos de diferentes clases para compartir el mismo método y responder a el de diferentes formas.
ejemplo:
considere una clase llamada Animal con un método llamado hacerSonido(). Este método podría anularse en las subclases para producir diferentes sonidos, como el ladrido de un perro o el maullido de un gato.
Así como este vídeo...en todos los cursos deberían hacer una intro a esto para generar la expectativa de cada persona y se adentre a llevar el curso. Sería excelente pienso yo.
Por otra parte...crep que este vídeo resume todo el curso de POO de la profesora 😅 (digo solo en la parte teórica).
Explicacion basica de que son las clases y los objetos.
Pilares de la Programación Orientada a Objetos
Clase: Es el molde o plano lógico que define la estructura.
Objeto: Es la instancia real creada a partir de esa clase.
Atributos y Métodos: Los primeros definen las propiedades (datos) y los segundos las acciones (comportamiento).
Conceptos Avanzados
Herencia: Permite crear nuevas clases basadas en otras existentes, reutilizando características comunes.
Encapsulamiento: Técnica para ocultar datos internos, protegiendo la información sensible de accesos externos.
Polimorfismo: Capacidad de diferentes objetos para interpretar un mismo mensaje o método de formas distintas.
Excelenteeeee súper explicación con Anahí Salgado!!!
excelent remember of topycs
Esta clase pertenecía al curso de POO en platzi, actualmente lo busco pero no lo encuentro, espero que traigan uno nuevo🙂. Debo decir que hasta ahora no he utilizado polimorfismo o sí, bueno creo que no, espero usarlo pronto 😁