mi茅rcoles, 12 de febrero de 2025

馃憠 Programaci贸n Orientada a Objetos en Python: Clases y Objetos

Hasta ahora hemos aprendido la sintaxis b谩sica de Python, estructuras de datos y c贸mo organizar c贸digo con funciones y m贸dulos. Ahora vamos a dar un gran paso adelante y explorar la Programaci贸n Orientada a Objetos (POO) en Python.

POO es un paradigma de programaci贸n que nos permite estructurar el c贸digo en objetos que contienen datos (atributos) y comportamientos (m茅todos).

Hoy veremos:
✔️ ¿Qu茅 es la Programaci贸n Orientada a Objetos (POO)?
✔️ C贸mo definir clases y crear objetos
✔️ M茅todos y atributos en Python
✔️ Conceptos clave: Herencia y encapsulamiento
✔️ Ejemplo pr谩ctico explicado paso a paso


1️⃣ ¿Qu茅 es la Programaci贸n Orientada a Objetos?

En POO, modelamos el mundo real usando clases y objetos.

Clases: Son plantillas que definen los atributos y m茅todos de un objeto.
Objetos: Son instancias de una clase, es decir, elementos creados a partir de una clase.

馃搶 Ejemplo en el mundo real:
馃挕 Clase: "Coche" (Define que tiene ruedas, motor, color, etc.)
馃殫 Objeto: Un coche espec铆fico ("Mi Toyota rojo")


2️⃣ C贸mo Definir una Clase y Crear un Objeto en Python

En Python, creamos una clase usando class y definimos un constructor __init__ para inicializar los atributos.

馃敼 Ejemplo de Clase y Objeto en Python:

class Coche: def __init__(self, marca, modelo, color): self.marca = marca self.modelo = modelo self.color = color def describir(self): return f"Coche {self.marca} {self.modelo} de color {self.color}" # Crear objetos de la clase Coche coche1 = Coche("Toyota", "Corolla", "Rojo") coche2 = Coche("Ford", "Focus", "Azul") print(coche1.describir()) print(coche2.describir())

馃搶 Salida esperada:

Coche Toyota Corolla de color Rojo Coche Ford Focus de color Azul

__init__() es el constructor, se ejecuta cuando se crea un objeto.
self representa la instancia del objeto.
self.marca = marca asigna el valor a un atributo del objeto.
describir() es un m茅todo que retorna informaci贸n sobre el objeto.


3️⃣ Atributos y M茅todos en Python

Los atributos son las caracter铆sticas del objeto, mientras que los m茅todos son sus acciones.

馃敼 Ejemplo de M茅todos en una Clase:

class Persona: def __init__(self, nombre, edad): self.nombre = nombre self.edad = edad def saludar(self): print(f"Hola, mi nombre es {self.nombre} y tengo {self.edad} a帽os.") persona1 = Persona("Jos茅", 25) persona1.saludar()

馃搶 Salida esperada:

Hola, mi nombre es Jos茅 y tengo 25 a帽os.

✅ Los m茅todos permiten que los objetos realicen acciones.
✅ Podemos llamar un m茅todo usando objeto.metodo().


4️⃣ Herencia en Python

La herencia permite que una clase herede atributos y m茅todos de otra.

馃敼 Ejemplo de Herencia en Python:

class Animal: def __init__(self, nombre): self.nombre = nombre def hacer_sonido(self): return "Hace un sonido" class Perro(Animal): def hacer_sonido(self): return "Ladra 馃惗" class Gato(Animal): def hacer_sonido(self): return "Ma煤lla 馃惐" perro = Perro("Rex") gato = Gato("Michi") print(perro.nombre, ":", perro.hacer_sonido()) print(gato.nombre, ":", gato.hacer_sonido())

馃搶 Salida esperada:

Rex : Ladra 馃惗 Michi : Ma煤lla 馃惐

class Perro(Animal) indica que Perro hereda de Animal.
✅ Podemos sobrescribir m茅todos (hacer_sonido()) en las clases hijas.


5️⃣ Encapsulamiento en Python

El encapsulamiento nos permite restringir el acceso a ciertos atributos de un objeto, evitando modificaciones accidentales.

馃敼 Ejemplo de Encapsulamiento:

class CuentaBancaria: def __init__(self, titular, saldo): self.titular = titular self.__saldo = saldo # Atributo privado def depositar(self, cantidad): self.__saldo += cantidad def retirar(self, cantidad): if cantidad <= self.__saldo: self.__saldo -= cantidad else: print("Saldo insuficiente.") def mostrar_saldo(self): return f"Saldo de {self.titular}: ${self.__saldo}" # Crear cuenta bancaria cuenta = CuentaBancaria("Jos茅", 1000) cuenta.depositar(500) cuenta.retirar(200) print(cuenta.mostrar_saldo()) # Muestra el saldo

馃搶 Salida esperada:

Saldo de Jos茅: $1300

__saldo es un atributo privado, no se puede modificar directamente desde fuera de la clase.
✅ Los m茅todos depositar() y retirar() permiten modificar el saldo de manera controlada.


馃殌 Conclusi贸n

Hoy aprendimos los conceptos b谩sicos de Programaci贸n Orientada a Objetos (POO) en Python.

Clases y Objetos → Modelo estructurado para organizar c贸digo
M茅todos y Atributos → Definen comportamientos y caracter铆sticas de un objeto
Herencia → Permite reutilizar c贸digo de otras clases
Encapsulamiento → Protege los datos de modificaciones no deseadas

En el pr贸ximo post, aprenderemos sobre manejo de archivos y bases de datos en Python. ¡No te lo pierdas!

馃搨 Descarga ejemplos y ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 D茅jame un comentario si tienes dudas o quieres que cubra alg煤n tema en detalle.



No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.