Kategorier: Alla - instancia - métodos - objeto - comportamiento

av Johanna Cedeño för 19 dagar sedan

21

Conceptos básicos de la programación orientada a objeto

La programación orientada a objetos se centra en la creación de clases y objetos. Una clase actúa como un molde que define atributos y métodos que los objetos creados a partir de ella tendrán.

Conceptos básicos de la programación orientada a objeto

Conceptos básicos de la programación orientada a objeto

Polimorfismo

El polimorfismo permite que diferentes clases tengan métodos con el mismo nombre, pero con comportamientos diferentes. En otras palabras, un mismo método puede comportarse de manera diferente dependiendo del objeto que lo llame.
class Gato: def hacer_sonido(self): print("Miau") class Perro: def hacer_sonido(self): print("Guau") def hacer_sonido_animal(animal): animal.hacer_sonido() gato = Gato() perro = Perro() hacer_sonido_animal(gato) # Miau hacer_sonido_animal(perro) # Guau

Herencia

La herencia es un mecanismo que permite crear una nueva clase (subclase) a partir de una clase existente (superclase). La subclase hereda los atributos y métodos de la superclase y puede modificar o extender su comportamiento.
class Vehiculo: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo def conducir(self): print(f"El {self.marca} {self.modelo} está conduciendo") class Coche(Vehiculo): # Coche hereda de Vehiculo def __init__(self, marca, modelo, puertas): super().__init__(marca, modelo) # Llama al constructor de la superclase self.puertas = puertas def abrir_puertas(self): print(f"Abriendo las {self.puertas} puertas del {self.marca} {self.modelo}")

Encapsulamiento

El encapsulamiento es el concepto de ocultar la implementación interna de un objeto y exponer solo lo necesario para su uso. Esto ayuda a proteger el estado interno del objeto y garantiza que los datos sean accedidos y modificados solo a través de métodos específicos. En Python, se puede hacer encapsulamiento usando convenciones como el uso de un guion bajo (_) o dos guiones bajos (__) al principio de un atributo o método para indicar que debe ser tratado como privado, aunque no es una restricción estricta.
class Coche: def __init__(self, marca, modelo): self._marca = marca # Atributo protegido self.__modelo = modelo # Atributo privado def obtener_modelo(self): return self.__modelo # Método para acceder al atributo privado

Métodos

Los métodos son funciones que están definidas dentro de una clase y describen el comportamiento de los objetos. Los métodos pueden acceder a los atributos de la instancia y modificar su estado. Métodos de instancia: Son los métodos que actúan sobre una instancia (objeto) específica. Se definen con def y el primer parámetro siempre es self, que hace referencia a la instancia actual.
class Coche: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo def conducir(self): print(f"El {self.marca} {self.modelo} está conduciendo")

Atributos

Los atributos son variables asociadas a un objeto o clase. Estos representan el estado o las propiedades del objeto. Los atributos pueden ser de dos tipos: Atributos de instancia: Son específicos de cada objeto. Se definen dentro del constructor __init__ y se accede usando self. Atributos de clase: Son compartidos por todas las instancias de la clase. Se definen dentro de la clase, pero fuera de cualquier método.
class Coche: def __init__(self, marca, modelo): self.marca = marca # Atributo de instancia self.modelo = modelo # Atributo de instancia

Objeto

Un objeto es una instancia de una clase. Cuando creas un objeto de una clase, ese objeto tiene acceso a los atributos y métodos definidos en la clase. Instanciación: El proceso de crear un objeto a partir de una clase
mi_coche = Coche("Toyota", "Corolla") # Instanciación del objeto mi_coche.conducir() # Llamada a un método del objeto

|

Una clase es una plantilla o molde para crear objetos. Define qué atributos y métodos tendrán los objetos creados a partir de ella. Una clase describe el comportamiento y las propiedades comunes de los objetos que pertenecen a esa clase.
class Coche: def __init__(self, marca, modelo): self.marca = marca # Atributo self.modelo = modelo # Atributo def conducir(self): # Método print(f"El {self.marca} {self.modelo} está conduciendo")