Programacion Orientada A Objetos
Programacion Orientada A Objetos
Programacion Orientada A Objetos
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.
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 Abstracción
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
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.
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.
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.
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)”.
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.
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.