[go: up one dir, main page]

0% encontró este documento útil (0 votos)
53 vistas15 páginas

POO en Python: Clases y Objetos

Este documento explica conceptos fundamentales de programación orientada a objetos en Python como clases, objetos, herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento de manera concisa mediante definiciones, explicaciones y ejemplos.

Cargado por

abrego MC
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
53 vistas15 páginas

POO en Python: Clases y Objetos

Este documento explica conceptos fundamentales de programación orientada a objetos en Python como clases, objetos, herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento de manera concisa mediante definiciones, explicaciones y ejemplos.

Cargado por

abrego MC
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

POO clase y objeto

Una clase en Python es un modelo o un plano para crear objetos. Define las características
y el comportamiento común a un grupo de objetos. Por otro lado, un objeto es una instancia
específica de una clase. Es una entidad con atributos y métodos que representan un estado y
un comportamiento particular.

Explicación: Una clase define cómo se deben crear los objetos y qué comportamiento y
propiedades tendrán esos objetos. Los objetos, por otro lado, son instancias únicas de esa
clase, que pueden tener diferentes valores de atributos pero comparten el mismo
comportamiento definido en la clase.

Ejemplo de clase:

En este ejemplo, Persona es una clase que define cómo crear objetos de tipo persona. La
clase tiene un constructor __init__ para inicializar los atributos nombre y edad, y un
método saludar que imprime un saludo personalizado.
Ejemplo de objeto:

En este ejemplo, Perro es una clase que define cómo crear objetos de tipo perro. Se crean
dos objetos, perro1 y perro2, que son instancias de la clase Perro. Cada objeto tiene sus
propios valores de atributos nombre y edad, y comparten el mismo comportamiento
definido en la clase mediante el método ladrar().
Herencia
La herencia en Python es un concepto fundamental en la programación orientada a objetos
que permite que una clase herede atributos y métodos de otra clase. La clase que hereda se
llama subclase o clase hija, y la clase de la que hereda se llama superclase o clase padre.
Esto permite la reutilización de código y la creación de jerarquías de clases.

Explicación: Cuando una clase hereda de otra, la subclase adquiere automáticamente todos
los atributos y métodos de la superclase. Esto significa que la subclase puede usar,
modificar o extender el comportamiento de la superclase sin necesidad de volver a escribir
el código.

Ejemplo de herencia:
En este ejemplo, Animal es la clase padre que define un método hacer_sonido(), que será
implementado por las clases hijas. Perro y Gato son subclases que heredan de la clase
Animal. Cada subclase tiene su propio método hacer_sonido() que define el sonido
característico de cada animal.
Este es un ejemplo básico de herencia en Python, donde las clases hijas pueden personalizar
y extender el comportamiento de la clase padre según sea necesario.
Cohesión

La cohesión en Python se refiere a la medida en que los componentes de un módulo o clase


están relacionados y trabajan juntos para lograr un objetivo común. Una alta cohesión
indica que los componentes están fuertemente relacionados y se centran en realizar una
tarea específica, mientras que una baja cohesión indica que los componentes están
débilmente relacionados y pueden estar dispersos, lo que dificulta su mantenimiento y
comprensión.

Explicación: La cohesión es importante en el diseño de software porque ayuda a garantizar


que los módulos o clases sean fáciles de entender, mantener y reutilizar. Los componentes
altamente cohesivos tienden a ser más simples, más robustos y más fáciles de probar.

Ejemplo de alta cohesión:


En este ejemplo, la clase Calculadora tiene métodos cohesivos que realizan operaciones
matemáticas relacionadas. Cada método se centra en una tarea específica y todos los
métodos trabajan juntos para proporcionar funcionalidad de calculadora.
Ejemplo de baja cohesión:

En este ejemplo, la clase OperacionesMatematicas tiene métodos que realizan tareas


diferentes y no relacionadas entre sí. Esto hace que la clase tenga baja cohesión, ya que sus
componentes no están centrados en un objetivo común.
Abstracción

La abstracción en Python es un concepto fundamental en programación que implica ocultar


los detalles internos de una función o clase, y exponer solo la funcionalidad necesaria para
que otros puedan interactuar con ella. En términos más simples, abstracción significa
enfocarse en lo que una pieza de código hace, en lugar de cómo lo hace.

Explicación: Cuando creamos una función o una clase en Python, podemos abstraer los
detalles internos de su implementación. Por ejemplo, si creamos una función para calcular
el área de un círculo, no necesitamos exponer cómo se realiza el cálculo de la fórmula
matemática; simplemente exponemos una función que toma el radio como entrada y
devuelve el área como salida.

Ejemplo de función:

En este ejemplo, la función calcular_area_circulo abstrae los detalles de cómo se calcula el


área del círculo, simplemente tomando el radio como entrada y devolviendo el área como
salida.
Ejemplo de clase:

En este ejemplo, la clase Coche abstrae los detalles internos de cómo funciona un coche. El
usuario solo necesita saber cómo acelerar y frenar el coche, no necesita preocuparse por
cómo se gestionan exactamente las velocidades internamente. Esto es un ejemplo de
abstracción en la programación orientada a objetos.
Polimorfismo

}El polimorfismo en Python es un concepto que permite a objetos de diferentes tipos


responder de manera uniforme a una misma llamada de método o función. En otras
palabras, objetos de diferentes clases pueden compartir el mismo nombre de método o
función, pero pueden comportarse de manera diferente dependiendo de su propia
implementación. Esto permite escribir código más flexible y reutilizable.

Explicación: Cuando se aplica polimorfismo, un método o función puede tener diferentes


comportamientos según el tipo de objeto que lo invoque. Esto se logra mediante la creación
de métodos o funciones con el mismo nombre en diferentes clases, pero con diferentes
implementaciones.

Ejemplo de polimorfismo con métodos:


En este ejemplo, tanto la clase Perro como la clase Gato tienen un método sonido(), pero
cada uno devuelve un sonido diferente. La función hacer_sonar() toma un objeto de tipo
Animal, pero puede manejar tanto perros como gatos sin necesidad de saber
específicamente qué tipo de animal es.
Ejemplo de polimorfismo con funciones:

En este ejemplo, tanto la clase Circulo como la clase Cuadrado tienen un método area(),
pero cada uno calcula el área de manera diferente. La función calcular_area() puede
manejar tanto círculos como cuadrados sin necesidad de saber específicamente qué tipo de
figura geométrica es.
Acoplamiento

El acoplamiento en Python se refiere al grado de dependencia entre diferentes partes de un


programa. Un acoplamiento bajo significa que los componentes están menos
interconectados, lo que hace que el código sea más flexible, mantenible y reutilizable. Por
otro lado, un acoplamiento alto significa que los componentes están más interconectados, lo
que puede hacer que el código sea más difícil de entender, modificar y depurar.

Explicación: Cuando los componentes de un programa están fuertemente acoplados, un


cambio en una parte del código puede tener un impacto significativo en otras partes del
código. Por otro lado, cuando los componentes están débilmente acoplados, los cambios en
una parte del código tienen un impacto limitado en otras partes del código.

Ejemplo de acoplamiento bajo:

n este ejemplo, las clases Calculadora e Impresora están débilmente acopladas. La clase
Calculadora no sabe nada sobre la clase Impresora, y la clase Impresora no sabe nada sobre
la clase Calculadora. Cambiar la implementación de una clase no afectará la otra.
Ejemplo de acoplamiento alto:

En este ejemplo, la clase Calculadora está fuertemente acoplada con la función


imprimir_resultado(). Si se decide cambiar cómo se imprime el resultado, por ejemplo, usar
un formato diferente o enviarlo a otro destino de salida, necesitaríamos modificar la
implementación de la clase Calculadora, lo que aumenta el acoplamiento y reduce la
flexibilidad del código.
Encapsulamiento
El encapsulamiento en Python es un principio de programación orientada a objetos que
consiste en ocultar los detalles internos de una clase y proporcionar una interfaz para
interactuar con los objetos. Esto se logra definiendo los atributos y métodos de una clase
como públicos, protegidos o privados.
Explicación:
Los atributos y métodos públicos son accesibles desde fuera de la clase.
Los atributos y métodos protegidos tienen un subrayado al principio del nombre y
generalmente se utilizan para indicar que solo deben ser accesibles desde la propia clase y
sus subclases.
Los atributos y métodos privados tienen dos subrayados al principio del nombre y
generalmente se utilizan para indicar que solo deben ser accesibles desde la propia clase.
El encapsulamiento permite controlar el acceso a los datos y asegurar que se mantenga una
interfaz coherente para interactuar con los objetos, lo que facilita la modificación y el
mantenimiento del código.
Ejemplo de encapsulamiento:
En este ejemplo, la clase Persona tiene un atributo protegido _nombre y un atributo privado
__edad. Se proporcionan métodos get_ y set_ para acceder y modificar estos atributos, lo
que encapsula el acceso a los datos. Además, se muestra que intentar acceder directamente
a los atributos protegidos y privados desde fuera de la clase genera un error.

También podría gustarte