Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Qué Es La Programación Orientada A Objetos
¿Qué Es La Programación Orientada A Objetos
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 1/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
En este enfoque, cada una de estas entidades se convierte en un objeto, con propiedades (datos) y
comportamientos (funcionalidades). Por ejemplo, un objeto «Libro» puede tener atributos como el
título, el autor y el año de publicación, así como métodos para obtener información sobre el libro,
prestarlo o devolverlo a la biblioteca.
La clave de la POO radica en la interacción entre estos objetos. Pueden comunicarse entre sí
enviándose mensajes y colaborando para lograr un objetivo común. Por ejemplo, un objeto «Usuario»
podría enviar un mensaje al objeto «Libro» para solicitar su préstamo, y este último respondería
actualizando su estado interno.
Una clase es una plantilla. Define de manera genérica cómo van a ser los objetos de un determinado
tipo. Por ejemplo, una clase para representar a animales puede llamarse ‘animal’ y tener una serie de
atributos, como ‘nombre’ o ‘edad’ (que normalmente son propiedades), y una serie con los
comportamientos que estos pueden tener, como caminar o comer, y que a su vez se implementan como
métodos de la clase (funciones).
Un ejemplo sencillo de un objeto, como decíamos antes, podría ser un animal. Un animal tiene una
edad, por lo que creamos un nuevo atributo de ‘edad’ y, además, puede envejecer, por lo que definimos
un nuevo método. Datos y lógica. Esto es lo que se define en muchos programas como la definición de
una clase, que es la definición global y genérica de muchos objetos.
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 2/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
Con la clase se pueden crear instancias de un objeto, cada uno de ellos con sus atributos definidos de
forma independiente. Con esto podríamos crear un gato llamado Paco, con 3 años de edad, y otro
animal, este tipo perro y llamado Pancho, con una de edad de 4 años. Los dos están definidos por la
clase animal, pero son dos instancias distintas. Por lo tanto, llamar a sus métodos puede tener
resultados diferentes. Los dos comparten la lógica, pero cada uno tiene su estado de forma
independiente.
Todo esto, junto con los principios que vamos a ver a continuación, son herramientas que nos pueden
ayudar a escribir un código mejor, más limpio y reutilizable.
La encapsulación contiene toda la información importante de un objeto dentro del mismo y solo
expone la información seleccionada al mundo exterior.
Esta propiedad permite asegurar que la información de un objeto esté oculta para el mundo exterior,
agrupando en una Clase las características o atributos que cuentan con un acceso privado, y los
comportamientos o métodos que presentan un acceso público.
Usamos de ejemplo un coche para explicar la encapsulación. El coche comparte información pública a
través de las luces de freno o intermitentes para indicar los giros (interfaz pública). Por el contrario,
tenemos la interfaz interna, que sería el mecanismo propulsor del coche, que está oculto bajo el capó.
Cuando se conduce un automóvil es necesario indicar a otros conductores tus movimientos, pero no
exponer datos privados sobre el tipo de carburante o la temperatura del motor, ya que son muchos
datos, lo que confundiría al resto de conductores.
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 3/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
La abstracción
La abstracción es cuando el usuario interactúa solo con los atributos y métodos seleccionados de un
objeto, utilizando herramientas simplificadas de alto nivel para acceder a un objeto complejo.
En la programación orientada a objetos, los programas suelen ser muy grandes y los objetos se
comunican mucho entre sí. El concepto de abstracción facilita el mantenimiento de un código de gran
tamaño, donde a lo largo del tiempo pueden surgir diferentes cambios.
Así, la abstracción se basa en usar cosas simples para representar la complejidad. Los objetos y las
clases representan código subyacente, ocultando los detalles complejos al usuario. Por consiguiente,
supone una extensión de la encapsulación. Siguiendo con el ejemplo del coche, no es necesario que
conozcas todos los detalles de cómo funciona el motor para poder conducirlo.
La herencia
La herencia define relaciones jerárquicas entre clases, de forma que atributos y métodos comunes
puedan ser reutilizados. Las clases principales extienden atributos y comportamientos a las clases
secundarias. A través de la definición en una clase de los atributos y comportamientos básicos, se
pueden crear clases secundarias, ampliando así la funcionalidad de la clase principal y agregando
atributos y comportamientos adicionales.
Volviendo al ejemplo de los animales, se puede usar una sola clase de animal y agregar un atributo de
tipo de animal que especifique el tipo de animal. Los diferentes tipos de animales necesitarán diferentes
métodos, por ejemplo, las aves deben poder poner huevos y los peces, nadan. Incluso cuando los
animales tienen un método en común, como moverse, la implementación necesitaría muchas
declaraciones «si» para garantizar el comportamiento de movimiento correcto. Por ejemplo, las ranas
saltan, mientras que las serpientes se deslizan. El principio de herencia nos permite solucionar este
problema.
El polimorfismo
El polimorfismo consiste en diseñar objetos para compartir comportamientos, lo que nos permite
procesar objetos de diferentes maneras. Es la capacidad de presentar la misma interfaz para diferentes
formas subyacentes o tipos de datos. Al utilizar la herencia, los objetos pueden anular los
comportamientos principales compartidos, con comportamientos secundarios específicos. El
polimorfismo permite que el mismo método ejecute diferentes comportamientos de dos formas:
anulación de método y sobrecarga de método.
Alrededor de estos principios de la programación orientada a objetos se construyen muchas cosas. Por
ejemplo, los Principios SOLID, o los Patrones de diseño, que son recetas que se aplican a problemas
recurrentes que se han encontrado y se repiten en varios proyectos.
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 4/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
1. Java:
Define clases utilizando la palabra clave «class» y especifica atributos y métodos dentro de
ellas.
Utiliza la herencia con la palabra clave «extends» para crear subclases que hereden
características de una clase base.
Aprovecha las interfaces para definir contratos que las clases deben implementar.
Aprovecha el polimorfismo para tratar objetos de diferentes clases de manera uniforme,
utilizando métodos con la misma firma en diferentes clases.
Utiliza la encapsulación para ocultar los detalles internos de los objetos y proporcionar una
interfaz pública para interactuar con ellos.
2. C++:
Define clases utilizando la palabra clave «class» y especifica atributos y métodos dentro de
ellas.
Utiliza la herencia con los operadores de acceso «public», «private» y «protected» para
establecer la visibilidad de los miembros heredados.
Aprovecha las funciones virtuales y la herencia múltiple para lograr polimorfismo.
Utiliza la encapsulación con los modificadores de acceso «public», «private» y «protected»
para controlar el acceso a los miembros de una clase.
3. Python:
Define clases utilizando la palabra clave «class» y especifica atributos y métodos dentro de
ellas.
Aprovecha la herencia utilizando la clase base entre paréntesis al definir una clase.
Utiliza la herencia múltiple y el polimorfismo de manera natural, ya que Python lo permite.
Aprovecha las propiedades y los decoradores para implementar la encapsulación y controlar
el acceso a los atributos de una clase.
4. C#:
Define clases utilizando la palabra clave «class» y especifica atributos y métodos dentro de
ellas.
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 5/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
Utiliza la herencia con los operadores de acceso «public» y «protected» para establecer la
visibilidad de los miembros heredados.
Aprovecha las interfaces para definir contratos que las clases deben implementar.
Utiliza el polimorfismo utilizando la palabra clave «virtual» para los métodos en la clase base y
«override» en las subclases.
Utiliza los modificadores de acceso «public», «private» y «protected» para lograr
encapsulación y controlar el acceso a los miembros de una clase.
Al aprovechar las ventajas de la POO en estos lenguajes, puedes construir aplicaciones sólidas y
flexibles:
Conclusión
La Programación Orientada a Objetos es actualmente el paradigma que más se utiliza para diseñar
aplicaciones y programas informáticos. Son muchas sus ventajas, principalmente cuando necesitas
resolver desafíos de programación complejos. Permite una mejor estructura de datos y reutilización del
código, lo que facilita el ahorro de tiempo a largo plazo. Eso sí, para ello se requiere pensar bien en la
estructura del programa, planificar al comienzo de la codificación, así como analizar los requisitos en
clases simples y reutilizables que se pueden usar para diseñar instancias de objetos.
Conocer la Programación Orientada a Objetos es algo básico para cualquier programador que se está
iniciando en el mundo del desarrollo de software. Una buena opción para ponerla en práctica puede ser
a través de estos 10 proyectos para crecer como programador. ¿Quieres ampliar información sobre
Programación Orientada a Objetos? ¡Suscríbete a nuestro canal de YouTube!
Artículos relacionados
Creación de un proyecto DevOps con Azure
PowerShell
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 6/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
FERNANDO DE LA TORRE • 10 DE OCTUBRE DE 2023
En este post veremos cómo crear un proyecto en Azure DevOps, asignar a los
usuarios a un grupo y vincular ese grupo al proyecto, además de la creación de un
repositorio y librerías, todo ello utilizando un script de PowerShell. La finalidad es
poder crear...
¡Compártelo!
Madrid
Castelló 23, 4º derecha. 28001
+34 91 594 36 64
Barcelona
Rosselló 253, 1º 2ª. 08008
+34 93 415 61 79
Sevilla
José de la Cámara 5, 4º planta B. 41018
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 7/8
20/10/23, 19:04 ¿Qué es la Programación Orientada a Objetos?
+34 95 514 74 85
Aviso legal Política de Privacidad Política de Cookies ISO 9001 Canal de denuncias
https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/ 8/8