Programacion Orientada A Objetos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

PROGRAMACION ORIENTADA A OBJETOS

 Marta Yilian Irias Pineda 202210020304 (Campus La Ceiba)


 José Carlos Rosales Núñez 202220020100 (Campus La Ceiba)
 Isaac Israel García Oliva 201910110142 (Campus Choluteca)

¿Qué es la Programación Orientada a Objetos?

La Programación Orientada a Objetos (POO) es un paradigma de programación, es decir, un


modelo o un estilo de programación que nos da unas guías sobre cómo trabajar con él. Se basa en el
concepto de clases y objetos. Este tipo de programación se utiliza para estructurar un programa de
software en piezas simples y reutilizables de planos de código (clases) para crear instancias
individuales de objetos.

A lo largo de la historia, han ido apareciendo diferentes paradigmas de programación.


Lenguajes secuenciales como COBOL o procedimentales como Basic o C, se centraban más en la
lógica que en los datos. Otros más modernos como Java, C# y Python, utilizan paradigmas para
definir los programas, siendo la Programación Orientada a Objetos la más popular.

Con el paradigma de Programación Orientado a Objetos lo que buscamos es dejar de


centrarnos en la lógica pura de los programas, para empezar a pensar en objetos, lo que constituye
la base de este paradigma. Esto nos ayuda muchísimo en sistemas grandes, ya que, en vez de pensar
en funciones, pensamos en las relaciones o interacciones de los diferentes componentes del sistema.

Un programador diseña un programa de software organizando piezas de información y


comportamientos relacionados en una plantilla llamada clase. Luego, se crean objetos individuales a
partir de la plantilla de clase. Todo el programa de software se ejecuta haciendo que varios objetos
interactúen entre sí para crear un programa más grande.
Origen de la Programación Orientada a Objetos.

En el Centro de Cálculo Noruego, un equipo de investigación, liderado por Krinsten


Nygaard1 y Ole-Johan Dahl2, tuvo problemas en el desarrollo de simulaciones de sistemas físicos,
como el caso de simular el funcionamiento y rendimiento de un motor. Se dieron dos problemas en
este punto:

1. Los programas eran muy complejos.


2. Las modificaciones, al ser una simulación, eran muy frecuentes

La solución que idearon fue diseñar el programa paralelamente al objeto físico. Es decir, si
el objeto físico tenía cien componentes, el programa también tendría cien módulos, uno por cada
pieza. Partiendo el programa de esta manera, había una total correspondencia entre el sistema físico
y el sistema informático. Así, cada pieza física tenía su abstracción informática en un módulo. De la
misma manera que los sistemas físicos se comunican enviándose señales, los módulos informáticos
se comunicarían enviándose mensajes.

A partir de esta situación, se desarrolló un lenguaje de programación con algunos conceptos


pilares de la Programación Orientada a Objetos. Este se denominó SIMULA 67, y fue presentado en
1967 al público.

https://objetosweb.wordpress.com/2016/02/01/breve-historia-de-la-programacion-orientada-a-objetos/

1
Krinsten Nygaard fue un político, matemático noruego y pionero de la informática.
2
Ole-Johan Dahl un científico de la computación noruego considerado uno de los padres del lenguaje de
programación Simula, y de la programación orientada a objetos, junto con Kristen Nygaard.
4 Principios de la Programación Orientada a Objetos

La Encapsulación

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.

La encapsulación de cada objeto es responsable de su propia información y de su propio


estado. La única forma en la que este se puede modificar es mediante los propios métodos del
objeto.

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.

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.

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.
¿Por qué POO?

La Programación Orientada a objetos permite que el código sea reutilizable, organizado y


fácil de mantener. Sigue el principio de desarrollo de software utilizado por muchos programadores
DRY (Don’t Repeat Yourself), para evitar duplicar el código y crear de esta manera programas
eficientes. Además, evita el acceso no deseado a los datos o la exposición de código propietario
mediante la encapsulación y la abstracción, de la que hablaremos en detalle más adelante.
Ventajas de la programación orientada a objetos

La programación orientada a objetos es una parte tan fundamental del desarrollo de software
que es difícil recordar un momento en que los programadores usaron cualquier otro enfoque. Sin
embargo, cuando apareció por primera vez en la década de 1980, supuso un salto radical respecto al
método tradicional de arriba hacia abajo. Sus principales ventajas.

1. Modularidad para facilitar la resolución de problemas

Cuando se trabaja con lenguajes de programación orientados a objetos se tiene una mejor
idea de dónde buscar el error cuando algo no está funcionando bien. No tienes que ir línea por línea
a través de todo tu código.

Esa es la belleza de la encapsulación los objetos son autónomos. Además, este modularidad
permite que un equipo de TI trabaje en múltiples objetos simultáneamente mientras minimiza la
posibilidad de que una persona pueda duplicar la funcionalidad de otra.

2. Reutilización de código mediante herencia

Suponga que, además de su objeto “auto”, un colega necesita un objeto “auto de carrera” y
otro necesita un objeto “limusina”. Todos construyen sus objetos por separado, pero descubren
puntos en común entre ellos. De hecho, cada objeto es solo un tipo diferente de automóvil. Aquí es
donde la técnica de herencia ahorra tiempo: se puede crear una clase genérica (auto) y luego definir
las subclases (auto de carrera y limusina) que heredarán los rasgos de la clase genérica.

3. Flexibilidad a través del polimorfismo

El polimorfismo de la programación orientada a objetos trata de que una sola función puede
cambiar de forma para adaptarse a cualquier clase en la que se encuentre. Por ejemplo, podría crear
una función en la clase principal “auto” llamada “conducir”, no “conducirAuto” ni
“conducirAutoDeCarrera”, sino simplemente “conducir”. Esta función funcionaría tanto para autos
de carrera como para limusina u otros. De hecho, incluso podría tener “AutoDeCarrera.conducir
(miConductorAutoDeCarrera)” o “limusina.conducir (miConductorPersonal)”.

4. Resolución efectiva de problemas

Muchas personas evitan aprender la programación orientada a objetos porque la curva de


aprendizaje parece más pronunciada que la de la programación de arriba hacia abajo. Pero tómese el
tiempo para dominar la programación orientada a objetos y descubrirá que es el enfoque más fácil e
intuitivo para desarrollar grandes proyectos. La programación orientada a objetos se trata, en última
instancia, de tomar un gran problema y dividirlo en partes solucionables. Para cada problema,
escribe una clase que hace lo que necesita. Y luego, lo mejor de todo, puede reutilizar esas clases, lo
que hace que sea aún más rápido resolver el siguiente problema.

Esto no quiere decir que sea la única forma de escribir software; sin embargo, la
programación orientada a objetos es ampliamente utilizada y Visual Studio .NET es una de las
herramientas que puedes utilizar para ello.

Desventajas de la programación orientada a objetos

No todos los programas pueden ser modelados con exactitud por el modelo de objetos. Si lo
que deseas es leer algunos datos, hacerles algo simple y escribir de nuevo, no tienes necesidad de
definir clases y objetos. Sin embargo, en algunos lenguajes de POO, puede que tengas que realizar
este paso extra. Otra desventaja es que, si se fuerza el lenguaje en el concepto de programación
orientada a objetos, se pierden algunas de las características de lenguajes útiles, como los "lenguajes
funcionales". Otra desventaja el que concepto que un programador tiene de lo que constituye un
objeto abstracto puede no coincidir con la visión de otro programador. Los objetos a menudo
requieren una extensa documentación.

También podría gustarte