Objetos y Clases

En esta lección, continuaremos explorando los conceptos de objetos y clases en la programación orientada a objetos. Aprenderemos cómo crear múltiples objetos a partir de una misma clase y cómo trabajar con sus atributos y métodos.

Instancias de Clase

Cuando se crea un objeto a partir de una clase, se crea una instancia de esa clase. Cada instancia es independiente y puede tener sus propios valores de atributos.

Ejemplo:

class Coche:
    def __init__(self, marca, modelo):
        self.marca = marca
        self.modelo = modelo

coche1 = Coche("Toyota", "Camry")
coche2 = Coche("Honda", "Civic")

En este ejemplo, hemos creado dos instancias de la clase “Coche” (coche1 y coche2) con diferentes valores de atributos “marca” y “modelo”. Atributos de Instancia

Los atributos de instancia son características específicas de un objeto que se almacenan como variables en la instancia. Cada objeto puede tener sus propios valores de atributos.

Ejemplo:

class Estudiante:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

estudiante1 = Estudiante("Ana", 20)
estudiante2 = Estudiante("Juan", 22)

En este ejemplo, hemos creado dos instancias de la clase “Estudiante” con atributos “nombre” y “edad” que son específicos para cada estudiante.

Métodos de Instancia

Los métodos de instancia son funciones definidas en la clase que operan en los atributos de la instancia. Cada objeto puede llamar a los métodos de instancia para realizar acciones específicas.

Ejemplo:

class Gato:
    def __init__(self, nombre):
        self.nombre = nombre

    def maullar(self):
        print(f"{self.nombre} está maullando.")

gato1 = Gato("Mittens")
gato2 = Gato("Whiskers")

gato1.maullar()
gato2.maullar()

En este ejemplo, hemos creado dos instancias de la clase “Gato” y llamado al método “maullar” en cada gato para que realicen la acción específica.

Actividad Práctica

Crea una clase Rectángulo con atributos “ancho” y “alto”. Luego, implementa un método llamado “calcular_area” que calcule y retorne el área del rectángulo (ancho * alto).

Ejemplo de Clase Rectángulo

Resumen:

En este ejemplo, crearemos una clase llamada “Rectángulo” con atributos “ancho” y “alto”. Implementaremos un método llamado “calcular_area” que calculará y retornará el área del rectángulo (ancho * alto). Luego, crearemos dos instancias de la clase “Rectángulo” con diferentes dimensiones y mostraremos el área de cada rectángulo.

Resolución:

class Rectangulo:
    def __init__(self, ancho, alto):
        self.ancho = ancho
        self.alto = alto

    def calcular_area(self):
        return self.ancho * self.alto

# Crear dos instancias de Rectangulo
rectangulo1 = Rectangulo(5, 10)
rectangulo2 = Rectangulo(3, 7)

# Calcular el área de cada rectángulo
area1 = rectangulo1.calcular_area()
area2 = rectangulo2.calcular_area()

# Mostrar el área de cada rectángulo
print(f"Área del Rectángulo 1: {area1}")
print(f"Área del Rectángulo 2: {area2}")

Explicación:

  1. Definimos la clase “Rectangulo” con un constructor init que toma dos argumentos: “ancho” y “alto”. Estos argumentos se utilizan para inicializar los atributos de instancia “ancho” y “alto”.
  2. Implementamos un método de instancia llamado “calcular_area” que calcula el área del rectángulo multiplicando el ancho por el alto y lo retorna.
  3. Creamos dos instancias de la clase “Rectangulo” con diferentes dimensiones (5x10 y 3x7).
  4. Calculamos el área de cada rectángulo llamando al método “calcular_area” en cada instancia.
  5. Mostramos el área de cada rectángulo en la consola.

¿Qué aprendimos?

  • Aprendimos los conceptos fundamentales de la Programación Orientada a Objetos (POO).
  • Comprendimos cómo definir clases y objetos en Python.
  • Practicamos la creación de atributos y métodos de instancia en una clase.
  • Realizamos una actividad práctica para aplicar los conocimientos adquiridos en la creación de una clase y su uso.