Programación Orientada a Objetos

por | Jul 29, 2025 | Tipos de Programación | 0 Comentarios

La Programación Orientada a Objetos (POO) es un “paradigma de programación” que se ha ganado una gran popularidad en años recientes (al 2025) debido a su capacidad para crear aplicaciones más robustas, flexibles y fáciles para mantener. Se la desarrolló en base a la idea de que los programas se pueden organizar como una colección de objetos interconectados, cada cual con sus propios datos (atributos) y funcionalidades (métodos).

La POO, se basa en la manera como percibimos y entendemos las cosas del mundo real que nos rodea. Por ejemplo, en lugar de pensar en algoritmos y estructuras de datos (propio de la Programación Estructurada), podríamos centrarnos en un “objeto” que existe en el mundo real, por ejemplo, una biblioteca; la POO nos llama a considerar las entidades que existen en el contexto de una biblioteca como libros, bibliotecarios y usuarios.

Enfocándonos en la biblioteca, cada una de sus entidades se convierten en un objeto, con propiedades que vendrían a ser datos, y comportamientos que vendrían a ser funcionalidades. Por ejemplo, un objeto “Libro” puede tener como “atributos” el título, el autor y el año de publicación, así como métodos (que es como se llama a los objetos en la POO) para obtener información sobre el libro, prestarlo o devolverlo a la biblioteca.

En la POO se puede interactuar entre los objetos; estos, pueden comunicarse entre sí mediante el envío de mensajes y colaborando para conseguir o lograr un objetivo común. Como ejemplo, un objeto llamado “Usuario” puede enviar un mensaje al objeto “Libro” para solicitar el préstamo del mismo, y este último va a responder actualizando su estado interno a “prestado”.

Ventajas de la Programación Orientada a objetos.

La POO permite que el código sea reutilizable, organizado y fácil de mantener. Se basa en el principio de desarrollo de software que actualmente es muy utilizado por muchos programadores llamado DRY (Don’t Repeat Yourself), con el que se consigue evitar código duplicado y crear programas mucho más eficientes.

Clases, objetos e instancias.

Lo más importante de la POO es “Distinguir entre clase y objeto”.

Antes de poder crear un objeto, se crea una clase que viene a ser un molde, como el de una galleta, en base al cual podemos crear un objeto que vendría a ser una galleta. A este proceso se lo conoce como instanciar una clase o crear una instancia de la clase que vendría a ser el objeto.

A una clase, también se le podría comparar con una plantilla que permite definir de manera general cómo van a ser los objetos de un determinado tipo que define. Por ejemplo, una clase que la vamos a usar para representar animales podría llamarse “animal” y tener una colección de atributos como “nombre” o “edad”, y una serie de comportamientos (los métodos) como beber, caminar, comer, etc. y que a su vez se implementan como los métodos (o funciones).

Los Principios de la Programación Orientada a Objetos.

  • Encapsulación: Es el principio que sirve para preservar la información de un objeto del mundo exterior, esto se lo consigue agrupando dentro de una clase las características o atributos que poseen un acceso privado, y los métodos o comportamientos que cuentan con un acceso público.

Con la encapsulación de un objeto se responsabiliza de su propia información y de su estado. Con esto, la única manera en la que se puede modificarlo es mediante los métodos que tiene el objeto. Al aplicarla, los atributos internos de un objeto son “inaccesibles desde afuera” y solo se pueden modificar llamando a funciones destinadas a darles acceso. El resultado de esto es poner a salvo la información de usos indebidos o inesperados.

Por ejemplo, en un automóvil, las luces de freno y direccionales son información pública, mientras que el motor está oculto. Cuando un conductor maneja un carro es necesario darle las instrucciones para conducirlo, pero no es necesario indicar información privada como el tipo del carburador o con qué temperatura está el motor, de hecho, esto es información que confundiría al resto de conductores.  

  • Abstracción: En la POO, los programas pueden llegar a ser muy grandes y los objetos se comunican mucho entre ellos. De ahí que la abstracción “facilita el mantenimiento de códigos de gran tamaño” y donde a lo largo del tiempo pueden surgir cambios.

La abstracción representa usar “cosas simples para representar la complejidad”. Los objetos y las clases ocultan para el usuario los detalles complejos del código. Esto viene a ser una extensión de la encapsulación, por ejemplo, no es necesario conocer los detalles del funcionamiento del motor para conducirlo.

  • Herencia: La Herencia permite que atributos y métodos puedan ser reutilizados, esto se logra con relaciones jerárquicas entre clases. Para aplicarla debemos de tener una súper clase que hereda sus atributos y métodos a otra clase llamada subclase. Y también, la subclase no solo que tiene los mismos atributos y métodos de la súper clase, si no también puede tener sus propios atributos y métodos, que podría heredarlos a otra clase de un nivel más bajo, se reparte en cascada.
  • Polimorfismo: Con el Polimorfismo se puede “diseñar objetos para compartir comportamientos” y esto permite procesar objetos de diferentes formas. Esto se puede ver en la Herencia en la cual se pueden anular los comportamientos principales con comportamientos secundarios específicos. Por ejemplo, si tenemos una súper clase “figura geométrica” y tenemos las clases herederas “circunferencia”, “triángulo” y “rectángulo”, estas van a heredar los atributos y métodos propios de la súper clase “figura geométrica”, pero van a tener sus atributos y métodos propios de cada cual.
  • Modularidad: La Modularidad es una propiedad que permite dividir una aplicación en partes más pequeñas llamadas “módulos”, con el requisito de que sean lo más independiente posible de la aplicación propiamente dicha y de las otras partes de la aplicación. A los módulos se los puede compilar por separado y también comunicarlos con los otros.
  • Principio de ocultación: El aislamiento protege a las propiedades de un objeto contra la modificación en contra de quien no tenga derecho de acceder acceso a ellas. Aquí tenemos los atributos o métodos públicos que pueden ser accedidos desde otros lugares, los métodos protegidos que pueden ser accedidos desde una súper clase y desde sus subclases, pero no desde otros objetos y sus jerarquías, y los métodos privados a los que solamente se puede acceder a sus métodos y atributos por otros métodos de la clase a la cual pertenecen.
  • Recolección de basura: La Recolección de basura, es una técnica de los lenguajes de programación orientada a objetos mediante la cual se destruye automáticamente los objetos y se limpia la memoria asociada a los objetos que se hayan quedado sin ninguna referencia a ellos.

Fuentes:

https://profile.es/blog/que-es-la-progrmaacion-orientada-a-objetos

https://es.wikipedia.org/wiki/Programación_orientada_a_objetos

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This