Temario
Curso: Curso de Programación Orientada a Objeto...
Acceso

Curriculum

Curso de Programación Orientada a Objetos en Python

Text lesson

Teoría de la Programación Orientada a Objetos

Objetivo del 1º tutorial de Curso de Programación Orientada a Objetos en Python

Comprender los conceptos que conforman la programación orientada a objetos y todas sus ventajas.

Para empezar debes comprender que hay dos tipos de formas de programar, la programación orientada a procedimiento (POP) y la programación orientada a objetos (POO). A grandes rasgos podríamos decir que los lenguajes de POP son los lenguajes antiguos y los lenguajes de POO son los lenguajes modernos, por lo tanto conviene diferenciar las características, ventajas y desventajas que tienen uno del otro.

Programación orientada a procedimientos (POP)

Algunos ejemplos de lenguajes de programación orientada a procedimientos son: Fortran, Cobol, Basic, etc. Estos lenguajes de programación ofrecían varias desventajas que promovieron a la creación de la programación orientada a objetos las cuales son:

  • Largas líneas de código en aplicaciones largas y complejas.
  • En aplicaciones complejas el código resultaba difícil de descifrar.
  • Poca de reutilización de código.
  • Si existe un fallo en alguna línea de código, es muy probable que el programa caiga.
  • Aparición frecuente de código espagueti.
  • Difícil de depurar por otros programadores en caso de necesidad o error.

Ante todas estas dificultades a medida que pasa el tiempo surge la necesidad de crear aplicaciones más complejas y se decidió dar un giro de 180 grados e inventar una forma de programar totalmente diferente con el objetivo de que todas esas desventajas desaparezcan o por lo menos no sean tan pronunciadas y se inventó lo que se conoce como la programación orientada a objetos.

Programación orientada a objetos (POO)

Esta forma de programar consiste en trasladar la naturaleza de los objetos de la vida real a código de programación, esto recoge todas las funcionalidades y características que tiene un objeto tales como un estado, un comportamiento y sus atributos para así poder crear programas más útiles.

Para dar un ejemplo de objeto usaremos un coche y te preguntaremos lo siguiente:

  • ¿Cuál es el estado de un coche? Un coche puede estar parado, circulando, aparcado, etc.
  • ¿Qué atributos tiene un coche? Un coche tiene un color, un peso, un tamaño, etc.
  • ¿Qué comportamiento tiene un coche? Un coche puede arrancar, frenar, acelerar, girar, etc.

Sabiendo todo esto gracias a la POO puedes trasladarlo al código de un programa y algunos ejemplos de leguajes de POO son: C++, Java, Visual.NET, Python, etc.

La POO nos ofrece las siguientes ventajas:

  • Programas divididos en “trozos”, “partes”, “módulos” o “clases” permitiendo la modularización del código.
  • Muy reutilizable implementando el concepto de herencia.
  • Si existe un fallo en alguna línea de código el programa aun así podrá ejecutarse.
  • Proporciona la encapsulación un método que permite la implementar protección al código para no ser usado fuera de la función donde está escrito.

Conceptos de la POO

La POO ofrece ciertos términos que a simple vista no son fáciles de entender, en este curso veras los más importantes para que la puedas entenderla lo mejor posible.

Clase

Una clase lo podríamos definir como un módulo donde se redactan las características comunes de un grupo de objetos. Ejemplo: Un objeto es un vehículo y sus clase son los tipos de vehículos tales como aviones, coche, trenes, motos, etc. Cada uno posee características únicas de su clase.

Objeto

Un objeto es un ejemplar perteneciente a una clase. Ejemplo: Si tenemos 2 vehículos un coche y una moto, ambos son objetos y pertenecen a dos clase diferentes, la clase moto y la clase coche.

Atributo

Son las características que tiene una clase.

Comportamiento

Son las acciones u operaciones que un objeto puede realizar.

Modularización

Normalmente cuando creas una aplicación compleja en un leguaje de POO como python es normal que esas aplicaciones estén compuestas de varias clases que trabajan de manera totalmente independiente una de otra y si una de las clases por cualquier razón deja de funcionar el programa no caerá eso es modularización.

Encapsulación

Es una función que impide que el funcionamiento de una clase no pueda ser usado o entendido por otra clase, es decir, por ejemplo: Un equipo de sonido no puede usar o tener las características de una nevera, por lo tanto si llevamos ese ejemplo a código se podría decir que la encapsulación protege la características de cada clase para que no puedan ser usadas fuera de la clase a la que pertenecen.