Mostrando entradas con la etiqueta clases. Mostrar todas las entradas
Mostrando entradas con la etiqueta clases. Mostrar todas las entradas

martes, 14 de julio de 2026

Día 15 — Clases: introducción a la programación orientada a objetos

La programación orientada a objetos (POO) es un paradigma que modela el código a partir de "objetos" que combinan datos y comportamiento, de forma similar a como funcionan los elementos del mundo real. Una clase actúa como el molde o plantilla, y un objeto es cada instancia concreta creada a partir de ese molde.

El método __init__ es el constructor: se ejecuta automáticamente cada vez que se crea un nuevo objeto, y normalmente se usa para inicializar sus atributos. El parámetro self hace referencia al propio objeto dentro de cualquier método de la clase, y siempre debe aparecer como primer parámetro.

Código de ejemplo:

class Persona: def __init__(self, nombre, edad): self.nombre = nombre self.edad = edad def presentarse(self): return f"Soy {self.nombre} y tengo {self.edad} años" jose = Persona("José", 35) print(jose.presentarse()) print(jose.nombre) # Acceso directo al atributo




lunes, 21 de julio de 2025

✅ Python Nivel 3 – Parte 2: Programación Orientada a Objetos Avanzada

 🔒 1. Encapsulamiento

Es un principio de la programación orientada a objetos que protege los datos internos de una clase, restringiendo el acceso directo a ellos.

🧪 Ejemplo:


class Usuario: def __init__(self, nombre): self.__nombre = nombre # atributo privado (doble guión bajo) def obtener_nombre(self): return self.__nombre

¿Qué significa __nombre?
El doble guión bajo convierte el atributo en privado, es decir, no se puede acceder directamente desde fuera de la clase (usuario.__nombre dará error).

👉 Se accede mediante métodos públicos, como obtener_nombre().


🏷️ 2. Uso de @property y @setter

Permite controlar cómo se accede y modifica un atributo, manteniendo la sintaxis simple como si fuera público.

🧪 Ejemplo:


class Producto: def __init__(self, precio): self._precio = precio # protegido @property def precio(self): return self._precio @precio.setter def precio(self, nuevo_precio): if nuevo_precio >= 0: self._precio = nuevo_precio

Ventaja:
Permite hacer validaciones al asignar o leer atributos, manteniendo una interfaz clara:


p = Producto(100) p.precio = 150 # Usa el setter print(p.precio) # Usa el getter

🔁 3. Métodos Especiales (Magic Methods)

Son métodos que comienzan y terminan con __. Python los usa para sobrecargar operadores y personalizar comportamientos.

✅ Ejemplos útiles:

Método¿Qué hace?
__str__Representación en print()
__len__Permite usar len(obj)
__eq__Permite usar obj1 == obj2
__add__Permite usar obj1 + obj2

🧪 Ejemplo de __str__:


class Punto: def __init__(self, x, y): self.x = x self.y = y def __str__(self): return f"Punto({self.x}, {self.y})" p = Punto(1, 2) print(p) # Imprime: Punto(1, 2)

🧱 4. Principios SOLID aplicados a Python

Estos principios ayudan a diseñar código mantenible, limpio y escalable.

🧩 Explicación de cada uno:

  • S – Single Responsibility
    Cada clase debe tener una única responsabilidad. No mezcles lógica de base de datos con lógica de interfaz, por ejemplo.

  • O – Open/Closed
    Las clases deben estar abiertas a extensión pero cerradas a modificación. Usa herencia o composición en lugar de cambiar código existente.

  • L – Liskov Substitution
    Una subclase debe poder reemplazar a su clase padre sin alterar el comportamiento del programa.

  • I – Interface Segregation
    No fuerces a una clase a implementar métodos que no necesita. Divide interfaces en bloques más pequeños si hace falta.

  • D – Dependency Inversion
    No dependas de clases concretas, sino de abstracciones. Usa interfaces o clases base cuando sea posible.


🏦 5. Ejemplo completo con todo lo aprendido


class CuentaBancaria: def __init__(self, titular, saldo=0): self.titular = titular self._saldo = saldo def depositar(self, cantidad): self._saldo += cantidad def retirar(self, cantidad): if cantidad <= self._saldo: self._saldo -= cantidad def __str__(self): return f"{self.titular} - Saldo: €{self._saldo}"
  • Usa encapsulamiento (_saldo)

  • Tiene métodos claros y separados

  • Usa __str__ para mostrar el objeto de forma legible

  • Cumple con el principio SRP (una clase → una tarea)



domingo, 8 de junio de 2025

🧪 Python Nivel 2 – Parte 1: Introducción a la Programación Orientada a Objetos

 Después de dominar los fundamentos de Python, es hora de dar el siguiente paso:

✨ Organizar tu código como un profesional con clases y objetos.


🧠 ¿Qué es la Programación Orientada a Objetos?

Es un paradigma que permite estructurar el código imitando el mundo real:
📦 Clases → plantillas
🧍 Objetos → instancias únicas
🏷️ Atributos → características
⚙️ Métodos → acciones


🔧 Conceptos que aprenderás hoy:

  • Qué es una clase y cómo se define

  • Cómo crear objetos a partir de clases

  • Cómo funcionan los atributos y métodos

  • Qué es el constructor __init__

  • Qué significa self en Python


✅ Ejemplo 1: Crear una clase básica


class Persona: def __init__(self, nombre, edad): self.nombre = nombre self.edad = edad def saludar(self): print(f"Hola, me llamo {self.nombre} y tengo {self.edad} años.") # Crear y usar un objeto persona1 = Persona("Lucía", 29) persona1.saludar()

✅ Ejemplo 2: Modificar atributos


persona1.nombre = "Laura" persona1.saludar()

🧠 El objeto puede cambiar dinámicamente su información.


✅ Ejemplo 3: Crear múltiples objetos


persona2 = Persona("Carlos", 35) persona3 = Persona("Ana", 42) persona2.saludar() persona3.saludar()

🚀 ¿Por qué usar POO?

✔️ Mantiene el código limpio y escalable
✔️ Agrupa información y funciones en una sola entidad
✔️ Es la base de librerías, frameworks, APIs y juegos
✔️ Reutilizas estructuras sin reescribir todo


📌 Próximo paso:

En la Parte 2 aprenderás:

  • Cómo usar métodos especiales (__str__, __repr__)

  • Cómo encapsular información

  • Cómo crear clases con lógica más compleja


📂 Código completo disponible en:
github.com/josecodetech

🎥 Video en YouTube:
https://www.youtube.com/watch?v=YWQe0WrjovI

💬 ¿Te gustaría ver cómo aplicar clases para videojuegos, apps o bots? ¡Déjamelo en los comentarios!

jueves, 8 de junio de 2023

Clases en directo de programacion

 Hola,

Te recuerdo que hoy 08/06/23 en 5 horas (22.30 hora española) comenzamos el directo, clase de programacion donde veremos los bucles con Python.
Amplia tu formacion y si tienes dudas consulta en el chat en directo.
Te espero en clase.
https://youtube.com/live/HZgl7bo58Cs?feature=share



lunes, 1 de mayo de 2023

Clases gratis en directo por youtube

¡No te pierdas mi clase en vivo de introducción a Python! Aprende los conceptos básicos del lenguaje de programación más popular en la actualidad y comienza a crear tus propias aplicaciones. ¡Únete a mí el 11 de mayo de 2023 en mi canal de YouTube @josecodetech a las 22:30 p.m. hora local!

¡No olvides suscribirte y activar las notificaciones para no perderte este gran evento!. Para poder ver las clases necesitas estar suscrito/a.

El proximo 11/05/23 a las 22:30 (hora de España), estare en directo en youtube, podras acceder con el siguiente enlace (solo para miembros suscritos al canal) ->https://youtube.com/live/8B7RtuCY_qw?feature=share

#programando con #josecodetech
Comenzaremos con las variables y constantes, para seguir avanzando cada semana con la programacion.
Contaras con un chat en directo para resolver dudas.
La clase quedara grabada y disponible en el canal de youtube para verla cuando necesites.
Espero contar contigo en estas clases.
Gracias.




martes, 12 de julio de 2022

Ejercicio 15 Python. Modulo propio

Crea un modulo con las operaciones basicas de una calculadora.
Importar el modulo desde otro archivo python y llamar a las funciones creadas anteriormente,
mostrando su resultado por la consola.



Ejercicio 14 Python. Modulo datetime

Crear un script que indique si has terminado tu jornada laboral, por ejemplo que compruebe si son las 19.30, en caso contrario indicar cuanto tiempo queda.
Hacer uso del modulo datetime, para comprobar la hora.

 



lunes, 27 de junio de 2022

Ejercicio 13 Python. Clase alumno

Crea una clase Alumno con su nombre y calificacion.
Ademas de iniciar sus atributos, debes crear los metodos para mostrarlos e indicar si esta aprobado o no.



Ejercicio 12 Python. Clase vehiculo

Crea una clase Vehiculo con los siguientes atributos:
    Marca
    Color
    
Crea la clase Coche que herede de vehiculo y tenga los siguientes atributos:
    Potencia
    Motor

Crear un objeto de clase Coche y mostrar sus atributos.




sábado, 4 de diciembre de 2021

Ejercicio de clases con Python

Realizar un programa que conste de una clase llamada Alumno que tenga como 
atributos el nombre y la nota del alumno. 

Definir los métodos y atributos, para mostrar los datos y un mensaje con el resultado de la nota.








martes, 31 de agosto de 2021

Clase Misil con Pygame

 Continuamos creando el juego de meteoritos con Pygame, en este video creamos la clase Misil que manejara los disparos realizados desde la nave.



sábado, 5 de junio de 2021

Clases en Python

 



class Vehiculo:
    def __init__(self, color, velocidadMaxima, marca):
        self.color = color
        self.velocidadMaxima = velocidadMaxima
        self.velocidad = 0
        self.marca = marca

    def arrancar(self):
        print('Arrancado')

    def acelerar(self):
        if self.velocidad == 0:
            self.velocidad = 10
        else:
            self.velocidad = self.velocidad + 10
        print(f"Velocidad = {self.velocidad}")

    def frenar(self):
        if self.velocidad > 10:
            self.velocidad = self.velocidad - 10
        else:
            self.velocidad = 0
        print(f"Velocidad = {self.velocidad}")

    def muestraEstado(self):
        print(
            f"Soy de la marca {self.marca}, con un color {self.color} y velocidad maxima de {self.velocidadMaxima}")


class Moto(Vehiculo):
    def __init__(self, color, velocidaMaxima, marca, ruedas=2):
        Vehiculo.__init__(self, color, velocidaMaxima, marca)
        self.ruedas = ruedas

    def muestraEstado(self):
        print(
            f"Soy de la marca {self.marca}, con un color {self.color},\n velocidad maxima de {self.velocidadMaxima} y tengo {self.ruedas} ruedas")


class Coche(Vehiculo):
    def __init__(self, color, velocidaMaxima, marca, ruedas=4):
        Vehiculo.__init__(self, color, velocidaMaxima, marca)
        self.ruedas = ruedas

    def muestraEstado(self):
        print(
            f"Soy de la marca {self.marca}, con un color {self.color},\n velocidad maxima de {self.velocidadMaxima} y tengo {self.ruedas} ruedas")


peugeot = Coche('rojo', 120, 'Peugeot', 4)
peugeot.arrancar()
peugeot.acelerar()
peugeot.muestraEstado()
peugeot.acelerar()
renault = Coche('verde', 130, 'Renault', 4)
renault.arrancar()
renault.acelerar()
renault.acelerar()
renault.muestraEstado()
yamaha = Moto('azul', 140, 'Yamaha', 2)
yamaha.arrancar()
yamaha.acelerar()
yamaha.acelerar()
yamaha.frenar()
yamaha.muestraEstado()