Diferencia entre revisiones de «Programación orientada a objetos»

Contenido eliminado Contenido añadido
m Revertidos los cambios de 189.163.112.213 (disc.) a la última edición de Jesuja
Línea 1:
{{problemas artículo|referencias|wikificar|informática|t=20090918125758}}
La '''programación orientada a objetos''' o '''POO''' ('''OOP''' según sus [[sigla]]s en [[Idioma inglés|inglés]]) es un [[paradigma de programación]] que usa [[Objetos (programación orientada a objetos)|objetos]] y sus interacciones, para diseñar aplicaciones y programas de ordenador. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.
 
== Introducción ==
Un objeto es en realidad un conjunto de funciones y procedimientos, todos ellos relacionados con un determinado concepto del mundo real. Los objetos son entidades que combinan ''estado (atributo)'', ''comportamiento (método)'' e ''identidad'':
* El ''estado'' está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
* El ''comportamiento'' está definido por los procedimientos o [[Método (informática)|métodos]] con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
* La ''identidad'' es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una [[Variable (programación)|variable]] o una [[Constante (programación)|constante]]).
 
La programación orientada a objetos, expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener, y reutilizar.
 
Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados [[Método (programación orientada a objetos)|métodos]], que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.
 
Los '''métodos (comportamiento)''' y '''atributos (estado)''' están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El [[programador]] debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una '''[[programación estructurada]] camuflada''' en un lenguaje de programación orientado a objetos.
 
La POO difiere de la [[programación estructurada]] tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada sólo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
 
== Origen ==