Está en la página 1de 12

UNIVERSIDAD DE ORIENTE

NÚCLEO MONAGAS
ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS
CURSO ESPECIAL DE GRADO: CsC

Paradigma orientado a objetos

Profesor: Jonathan Vásquez. Bachilleres:


Centeno G., Renny J. C.I.21.350.253
Fernández G. Ana B. C.I.21.329.313

Maturín, Marzo del 2015


Índice
Introducción .......................................................................................................................... 3
1. Marco teórico ................................................................................................................. 4
1.1 Paradigma............................................................................................................... 4
1.2 Programación orientada a objetos ....................................................................... 4
1.3 Reseña histórica...................................................................................................... 4
1.4 Conceptos fundame ntales de la POO ................................................................... 5
1.5 Características de la POO ..................................................................................... 6
1.6 Ventajas y desventajas de la POO ........................................................................ 7
1.7 Lenguajes basados en la POO.............................................................................. 8
2. Desarrollo .......................................................................................................................... 9
Conclusión ........................................................................................................................... 11
Bibliografía .......................................................................................................................... 12
Introducción

La programación surge para resolver problemas de la vida real. Desde sus inicios, ha
permitido a los seres humanos simplificar tareas, por ejemplo tareas de cálculo, que
manualmente tomarían días enteros. Los programadores se han dedicado una y otra vez a
diseñar programas que suplan las necesidades humanas y de las organizaciones. Sin
embargo, anteriormente existía una gran desventaja. Mismos programas destinados a la
resolución de un mismo problema, debían crearse cada uno desde el inicio y por separado.
Es aquí donde nace la necesidad de desarrollar una serie de normas que permitieran que
todo el trabajo desarrollado por otros programadores pudiese ser usado por otros. Esto es, la
reutilización de código.
Es aquí donde surge el paradigma de la programación orientada a objetos, que permite
crear objetos. Ahora bien, cabe entender que para poder crear objetos, primero se debe
pensar en objetos. En la programación, el pensamiento en objetos es bastante parecido al
pensamiento en la vida real. Primero se debe entender que un objeto de la vida real tiene
determinadas características y funcionalidades. Tal cual lo hace un objeto en la
programación orientada a objetos. Los objetos combinan estas características o atributos
con las funcionalidades o comportamiento.
Los atributos y el comportamiento de un objeto, lo hacen ser instancia o ejemplares de
una clase. Es decir, contienen todas las características de una clase y permiten utilizar sus
métodos, guardando los valores de dichos objetos. Las características de cada objeto
permiten identificarlo y diferenciarlo de otros objetos. Mientras que sus métodos van a
facilitar la interacción entre los mismos. Es importante resaltar que no se puede tratar a los
atributos y al comportamiento de un objeto como entidades separables. El programador
siempre debe pensar en el objeto como un conjunto que relaciona los dos valores antes
mencionados.
El paradigma de la programación orientada a objetos surge como a partir de una
necesidad. La necesidad de tener un acceso transparente a los datos y de que se lleven a
cabo ciertas funcionalidades. Por supuesto, este paradigma de la programación orientada a
objetos cumple con ciertas características como lo son la abstracción, la herencia, el
polimorfismo, la ocultación, el encapsulamiento y la recolección de basura.
Por otra parte, a pesar de que la programación orientada a objetos supone muchas
ventajas, como la reutilización de código y el acercamiento del programa a la realidad. Sin
embargo, no todo puede ser beneficioso. El pensamiento orientado a objetos no siempre
está arraigado en los programadores, pues requiere una lógica de pensamiento distinta a la
común y más visionaria. Por lo que a algunos programadores se les dificulta familiarizarse
con el paradigma orientado a objetos. Otra desventaja es que muchas veces los resultados
de la programación orientada a objetos son programas dotados de numerosas y extensas
líneas de código, que limitan la velocidad de procesamiento.
Aun así, a través del tiempo y pese a las desventajas, el paradigma orientado a objetos
ha sido tan apreciado que se han desarrollado numerosos lenguajes de programación
basados en él.
1. Marco teórico

1.1 Paradigma
Definicionabc (2015) nos habla de paradigma como:
Un paradigma es un modelo o patrón sostenido en una disciplina científica o
epistemológica o, a diversa escala, en otros contextos de una sociedad.
La palabra “paradigma” viene del griego y significa “modelo” o “ejemplo”. La
concepción de paradigma data de fines de la década del ’60 y refiere a un
determinado modelo de pensamiento o de interpretación de las entidades que se
corresponde con una disciplina y un contexto socio histórico dados. De cualquier
forma, el concepto es amplio y puede hacer referencia a un modelo tan complejo
como la explicación de determinado fenómeno científico y a algo tan informal y
variable como es la interpretación de las relaciones sociales.
En cualquiera de los casos, un paradigma supone un determinado entendimiento de
las cosas que promueve una forma de pensar en particular por sobre otras.
1.2 Programación orientada a objetos
Carballo (2007) indica que la programación Orientada a Objetos “es una metodología
que basa la estructura de los programas en torno a los objetos”. Al respecto, el mismo autor
explica:
Los lenguajes de POO ofrecen medios y herramientas para describir los objetos
manipulados por un programa. Más que describir cada objeto individualmente, estos
lenguajes proveen una construcción (Clase) que describe a un conjunto de objetos que
poseen las mismas propiedades.
1.3 Reseña histórica
Bobarin(2008) señala la reseña histórica de la POO.
La Programación Orientación a Objetos (P.O.O.) surge en Noruega en 1967 con un
lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en el
centro de cálculo noruego.
Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y subclases
(conceptos muy similares a los lenguajes Orientados a Objetos de hoy en día).
El nacimiento de la Programación Orientación a Objetos en Europa pasó inadvertido
para gran parte de los programadores. Hoy tenemos la Orientación a Objetos como un niño
de 33 años al que todos quieren bautizar.
En los 70’s científicos del centro de investigación en Palo Alto Xerox (Xerox park)
inventaron el lenguaje Small talk que dio respuesta al problema anterior (investigar no
planificar).
Small talk fue el primer lenguaje Orientado a Objetos puro de los lenguajes Orientados a
Objetos, es decir, únicamente utiliza clases y objetos (Java usa tipos de datos primitivos, o
bien los Wrappers que son clases que encapsulan tipos de datos primitivos).
En los años 80’s Bjarne Stroustrup de AT&T Labs., amplió el lenguaje C para crear
C++ que soporta la programación Orientada a Objetos.
En esta misma década se desarrollaron otros lenguajes Orientados a Objetos como
Objective C, Common Lisp Object System (CIOS), object Pascal, Ada y otros.
Posteriores mejoras en herramientas y lanzamientos comerciales de C++ por distintos
fabricantes, justificaron la mayor atención hacia la programación Orientada a Objetos en la
comunidad de desarrollo de software.
En el inicio de los 90’s se consolida la Orientación a Objetos como una de las mejores
maneras para resolver problemas. Aumenta la necesidad de generar prototipos más
rápidamente (concepto RAD Rapid Aplication Developments). Sin esperar a que los
requerimientos iniciales estén totalmente precisos.
En 1996 surge un desarrollo llamado JAVA (extensión de C++). Su filosofía es
aprovechar el software existente. Facilitar la adaptación del mismo a otros usos diferentes a
los originales sin necesidad de modificar el código ya existente.
En 1997-98 se desarrollan herramientas ‘CASE’ orientadas a objetos (como el diseño
asistido por computadora).
Del 98 a la fecha se desarrolla la arquitectura de objetos distribuidos RMI, Corba,
COM, DCOM.
1.4 Conceptos fundamentales de la POO
Javaenejemplos(2010) explica los conceptos fundamentales de la POO:
 Clase: definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de estas definiciones y la creación de un
objeto a partir de ellas.
 Herencia: (por ejemplo, herencia de la clase D a la clase C) Es la facilidad mediante
la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como
si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto,
puede usar los mismos métodos y variables públicas declaradas en C. Los
componentes registrados como "privados" (private) también se heredan, pero como
no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser
accedidos a través de otros métodos públicos.
 Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos) los mismos que consecuentemente
reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos
rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
 Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución
se desencadena tras la recepción de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un método puede producir un
cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo
mensaje para otro objeto del sistema.
 Evento: Es un suceso en el sistema (tal como una interacción del usuario con la
máquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. También se puede definir como
evento, a la reacción que puede desencadenar un objeto, es decir la acción que
genera.
 Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de
sus métodos con ciertos parámetros asociados al evento que lo generó.
 Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una
clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define
como sus características predeterminadas, y cuyo valor puede ser alterado por la
ejecución de algún método.
 Estado interno: es una variable que se declara privada, que puede ser únicamente
accedida y alterada por un método del objeto, y que se utiliza para indicar distintas
situaciones posibles para el objeto (o clase de objetos). No es visible al programador
que maneja una instancia de la clase.

1.5 Características de la POO


Javaenejemplos(2010) nos habla ahora de las características de la POO.
Existe un acuerdo acerca de qué características contempla la "orientación a objetos", las
características siguientes son las más importantes:
 Abstracción: Denota las características esenciales de un objeto, donde se capturan
sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"
con otros objetos en el sistema sin revelar cómo se implementan estas
características. Los procesos, las funciones o los métodos pueden también ser
abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar
una abstracción.
 Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite
aumentar la cohesión de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultación, principalmente porque se suelen
emplear conjuntamente.
 Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural,
y cada tipo de objeto expone una interfaz a otros objetos que específica cómo
pueden interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificación por quien no tenga derecho a
acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a
su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un
objeto de maneras inesperadas, eliminando efectos secundarios e interacciones
inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los
datos internos del objeto de una manera controlada y limitando el grado de
abstracción. La aplicación entera se reduce a un agregado o rompecabezas de
objetos.
 Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O dicho de otro
modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocación de un comportamiento en una referencia producirá
el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto
ocurre en "tiempo de ejecución", esta última característica se llama asignación
tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos
(en "tiempo de compilación") de polimorfismo, tales como las plantillas y la
sobrecarga de operadores de C++.
 Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una
jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento
de todas las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes. Estos pueden compartir
(y extender) su comportamiento sin tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos en clases y estas en árboles o
enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más
de una clase se dice que hay herencia múltiple.
 Recolección de basura: la Recolección de basura o Garbage Collector es la técnica
por la cual el ambiente de Objetos se encarga de destruir automáticamente, y por
tanto desasignar de la memoria, los Objetos que hayan quedado sin ninguna
referencia a ellos. Esto significa que el programador no debe preocuparse por la
asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo
Objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes
híbridos que se extendieron para soportar el Paradigma de Programación Orientada
a Objetos como C++ u Object Pascal, esta característica no existe y la memoria
debe desasignarse manualmente.

1.6 Ventajas y desventajas de la POO


Bobarin(2008) dice, los lenguajes orientados a objetos presentan las siguientes ventajas:
· Fomenta la reutilización y extensión del código.
· Permite crear sistemas más complejos.
· Relacionar el sistema al mundo real.
· Facilita la creación de programas visuales.
· Construcción de prototipos
· Agiliza el desarrollo de software
· Facilita el trabajo en equipo
· Facilita el mantenimiento del software
Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se
modela y representa el mundo real tan fielmente como sea posible.
 Flexibilidad: Si partimos del hecho que mediante la definición de clases
establecemos módulos independientes, a partir de los cuales podemos definir nuevas
clases, entonces podemos pensar en estos módulos como bloques con los cuales
podemos construir diferentes programas.
 Reusabilidad: Una vez que hemos definido a la entidad persona para utilizarla en
una aplicación de negocios, por mencionar un ejemplo, y deseamos construir a
continuación una aplicación, digamos de deportes, en donde requerimos definir a la
misma entidad persona, no es deseable volver a escribir la definición para la entidad
persona. Por medio de la reusabilidad podemos utilizar una clase definida
previamente en las aplicaciones que nos sea conveniente. Es claro que la
flexibilidad con la que se definió la clase va a ser fundamental para su reutilización.
 Mantenibilidad: Las clases que conforman una aplicación, vistas como módulos
independientes entre sí, son fáciles de mantener sin afectar a los demás
componentes de la aplicación.
 Extensibilidad: Gracias a la modularidad y a la herencia una aplicación diseñada
bajo el paradigma de la orientación a objetos puede ser fácilmente extensible para
cubrir necesidades de crecimiento de la aplicación.
A pesar de que las ventajas de la programación orientada a objetos superan a las
limitaciones de la misma, podemos encontrar algunas características no deseables en ésta.
Limitaciones para el programador. No obstante que la tecnología orientada a objetos no
es nueva, un gran porcentaje de programadores no están familiarizados con los conceptos
de dicha tecnología. En otras palabras, la lógica de la programación estructurada sigue
siendo predominante en la mayoría de los desarrolladores de software, después de haber
revisado de forma breve los principios de la programación orientada a objetos, nos es claro
que en ésta se requiere una lógica de pensamiento totalmente diferente a la lógica
comúnmente utilizada para la programación estructurada.
Tamaño excesivo en las aplicaciones resultantes. La gran mayoría de los equipos de
cómputo cuentan con capacidades tanto de almacenamiento como de memoria lo
suficientemente buena como para ejecutar la mayoría de las aplicaciones que puedan
desarrollarse con la tecnología orientada a objetos, sin embargo existen casos en los que lo
anterior no se cumple. Una de las desventajas de la programación orientada a objetos es que
cuando se heredan clases a partir de clases existentes se heredan de forma implícita todos
los miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones
muy grandes que no siempre encajan en los sistemas con los que se disponga.
Velocidad de ejecución: Esto tiene que ver, en cierto modo, con el punto anterior, una
aplicación innecesariamente pesada en muchas ocasiones es más lenta de ejecutar que una
aplicación conformada únicamente por los módulos necesarios.
1.7 Lenguajes basados en la POO
Existen gran variedad de lenguajes que se basan en este paradigma. Wikipedia (2013)
muestra una lista entre los cuales se encuentran: “Java, C++, C, Phyton, Ada, Ruby, visual
basic, Php, Perl, JavaScript, Pascal, entre otros”.
2. Desarrollo

Desde que el hombre habito la tierra por cuestiones obvias de supervivencia y de calidad
de vida se vio en la necesidad de realizar actividades que le generaran un resultado acorde a
las expectativas que este quería alcanzar, sea cual sea el objetivo(conseguir alimentos, tener
una casa, indagar sobre el mundo que lo rodea etc.), pero todos tenemos nuestra manera de
hacer las cosas, podemos alcanzar el mismo resultado atacando el problema desde
diferentes perspectivas, aun cuando no sabíamos la definición del concepto ya desde
tiempos memorables se aplicaba el concepto de paradigma, el campo que nos concierne(la
programación) por supuesto que no escapa de esto, existen diferentes métodos o modelos a
seguir para resolver los problemas mediante programas informáticos, pero una manera de
pensar no se efectúa de la noche a la mañana, una metodología de cómo se debe trabajar en
cualquier campo de la vida necesita una acentuación y asimilación por parte de los
protagonistas que tomaran dicho modelo como su manual a seguir a la hora de trabajar, la
programación orientada a objetos como paradigma también sufrió este proceso, cuando un
paradigma es nuevo es difícil que llegue a reemplazar a los ya existentes por misma
naturaleza del ser humano que muchas veces se resiste al cambio.
En los años 60 nace el concepto de paradigma formalmente y a la vez en esa década
comienza a formarse la programación orientada a objetos como paradigma, simula 67 fue el
primer precursor de la programación orientada objetos, al mencionar por primera vez
conceptos como clase, así simula 67 puso la primera piedra para que se desarrollaran
lenguajes netamente basados en orientación a objetos como Small talk en la década del 70,
ya en los 80 se desarrolla C++ basado en el lenguaje ya existente C, aquí ocurre un punto
de quiebre ya que C++ tuvo una gran aceptación por parte de los programadores y así se
comenzó a ver la orientación a objetos con otros ojos y se comenzó a desplazar a otros
paradigmas como la programación estructurada o funcional, además C++ sufrió mejoras
gracias al interés de diversas compañías y ya a principios de los 90 se consideraba a la
programación orientada a objetos como una(sino la mejor) manera de trabajar a la hora de
programar.
Entre los lenguajes que se desarrollaron desde los 60 hasta nuestros tiempos que
permitieron difundir el paradigma de programación orientada a objetos tenemos simula67,
Small talk, ada, pascal, c++, java.

Ahora bien, alcanzar el estatus de mejor modelo para programar no fue una tarea
sencilla, parte de ese éxito obviamente recae en cómo está estructurado y de qué manera se
trabaja en la programación orientada a objetos, vamos a analizar los conceptos y
características que conforma a este paradigma que le permitió ganarse la fidelidad de la
comunidad de desarrollo de software.
Vayamos por parte, dentro de los conceptos básicos que se manejan tenemos objetos(es
una entidad que tiene parámetros y comportamientos) y un ejemplo de este podría ser una
persona, un auto, un libro, clases (plantilla que dispone de los atributos de un grupo de
objetos) cuyo ejemplo podría ser “cantantes” donde sus objetos podían ser hector la voz,
madonna, Shakira entre otros, método (algoritmo que describe un comportamiento de un
objeto) que por ejemplo podría ser el caminar o el cantar de un cantante,
herencia(propiedad que permite a una clase heredad de otra clase) que siguiendo con la
línea de ideas seria “cantante de rock” que hereda de la clase “cantante, evento(suceso que
ocurre en el sistema) como lo es que un objeto “cantante” ejecute su método “caminar” y
mensaje(comunicación en el sistema) que no es más que notificarle a un objeto llámese
“cantante” que ejecute su método “cantar”, como podemos ver son conceptos sumamente
sencillos de manejar y es la base para comprender la programación orientada a objetos, con
estos conceptos se maneja la programación de una manera más práctica.
Ahora bien las características más influyentes dentro del paradigma orientado a objetos
son abstracción que nos permite ocultar la manera en la que un objeto realiza una función
determinada, polimorfismo donde puede haber 2 comportamientos con el mismo nombre
pero estos solo responderán cuando se les asocie con el objeto a que pertenecen,
encapsulamiento que agrupa a todos los elementos pertenecientes a un mismo nivel de
abstracción, herencia nos habla de que todas las clases se relacionan entre si y que facilita
de manera enorme el polimorfismo y encapsulamiento, principio de ocultación es una
técnica que le da independencia a cada objeto dentro del sistema, donde puede haber
comunicación con otros objetos pero estos no pueden afectar sus características internas
para mantener su integridad y por último y no menos importante la recolección de basura
que es una técnica donde el ambiente de objetos del sistema se encarga borrar a aquellos
objetos que ya no estén referenciados y así evitarle al programador la tarea de reasignar o
limpiar la materia.
Se nota que la orientación a objetos es un paradigma más que útil y con muchas ventajas
a la hora de programar, nos permite tener la reutilización del código para otros usos o
especializar aún más ese código a través de la herencia, además de que podemos mantener
al margen a nuestros objetos para que no se sepa la manera en que se realiza una
determinada acción, logrando que los llamados sean más sencillos y la creatividad del
programador pueda ser explotada, la interacción que existe entre clases objetos y métodos
hacen al sistema más robusto, logrando poder aplicar el encapsulamiento y polimorfismo
con facilidad logramos facilitarnos una serie de eventos que se nos podrían presentar en un
problema pudiendo interactuar de manera sencilla los objetos sin confusiones.
A pesar de ciertas desventajas que se podrían presentar como el tamaño de la aplicación
o que el programador no domine el paradigma por completo, la programación orientada a
objetos es la mejor opción para desarrollar aplicaciones, no solo es versátil y se aplica a
muchísimos casos sino que es robusta y confiable para el desarrollo de aplicaciones,
muchos software se han desarrollado bajo este paradigma y su éxito ha sido garantizado,
incluso aplicaciones que quedaran para el recuerdo de todos de los que disfrutamos del
mundo de la computación están basadas en algún lenguaje de programación orientado a
objetos.
Conclusión
El paradigma orientado a objetos surge de la necesidad de contar con normas que
permitieran reutilizar el trabajo y los esfuerzos en programación de otros programadores en
la búsqueda de la solución de los problemas. No es más que una representación de la
realidad. Tal y como vemos los objetos en la realidad, los mismos pueden representarse a
través de la programación orientada a objetos. Definiendo a un objeto como una entidad
provista de características y funciones, que combina estos elementos para reaccionar a
eventos. A pesar de que este paradigma fue desarrollado hace ya muchos años en Noruega,
aún hoy es difícil para algunos programadores familiarizarse con la visión que supone la
orientación a los objetos.
Un objeto no es más que una instancia de una clase. Entendiéndose clase como la
definición de cada una de las propiedades y funcionalidades de un objeto. Estas últimas
también pueden ser denominadas como atributos y métodos respectivamente. Los atributos
no son más que datos asociados y visibles desde fuera del mismo que son representativos
de sus características. Esto permite a los objetos identificarse y diferenciarse del resto. Por
otra parte, los métodos son las acciones, cambios o eventos que puede producir el objeto.
Cabe destacar que, como un objeto es capaz de interactuar con otro objeto del programa,
estos cambios o eventos pueden producir un mensaje para otro objeto. Ahora bien, este
mensaje no es más que una comunicación hacia otro objeto, con el fin de que este ejecute o
lleve a cabo alguno de sus métodos.
Es necesario recalcar que para poder programar bajo el paradigma orientado a objetos,
se deben tomar en cuenta las características de esta programación. Entre ellas, se encuentra
la abstracción. Esta característica se basa en capturar el comportamiento del objeto,
definiendo y representando las propiedades más esenciales del objeto. Por otra parte, una
característica importante a resaltar es la herencia. La herencia es la capacidad o la facilidad
que tiene una clase de formar una jerarquía con otras clases. El encapsulamiento consiste en
agrupar los elementos pertenecientes a una misma entidad. El principio de ocultación dice
que los objetos son módulos, aislados del exterior, pero que su interfaz especifica formas
para que otros objetos puedan comunicarse con él. El polimorfismo consiste en identificar
con el mismo nombre comportamientos distintos que pueden provenir de distintos objetos.
En la programación orientada a objetos también se cuenta con la propiedad de destruir
cualquier objeto que haya quedado en desuso. A esto se le llama recolección de basura.
Como todo en el mundo, la programación orientada a objetos tiene sus pros y sus
contras. Entre las ventajas que se pueden resaltar están la reutilización de código, la
posibilidad de elaborar programas más complejos, el trabajo en equipo, la capacidad de
mantenimiento de software, el hecho de que el programa esté más relacionado con la
realidad, programas más visuales, desarrollo de software, entre otros. Pero también tiene
que tener sus desventajas. La principal desventaja es la dificultad que representa para los
programadores tener una visión orientada a objetos. Otras desventajas son la extensión en el
código de los programas y la velocidad de ejecución.
Resta mencionar que se han desarrollado varios lenguajes de programación orientados a
objetos como lo son Java, PHP, C++, Ada, Perl, entre otros. Hay que recordar que el
paradigma orientado a objetos, como todo paradigma, en este momento se adapta al
contexto social e histórico, pero probablemente en un futuro no lo haga.
Bibliografía

 BOBARIN, Gonzalo, Historia de la programación orientada a objetos, 2008,


http://sis324loo.blogspot.com/2008/09/historia-de-los-lenguajes-de_29.html
[consulta: lunes, 23 de marzo del 2015, hora: 9:52]
 BOBARIN, Gonzalo, Ventajas, 2008,
http://sis324loo.blogspot.com/2008/09/historia-de-los-lenguajes-de_29.html
[consulta: lunes, 23 de marzo del 2015, hora: 9:55]
 BOBARIN, Gonzalo, Desventajas, 2008,
http://sis324loo.blogspot.com/2008/09/desventajas_1194.html [consulta: lunes, 23
de marzo del 2015, hora: 9:55]
 CARBALLO, Yusneyi, Programación orientada a objetos [en línea], 2007,
http://webdelprofesor.ula.ve/ingenieria/hyelitza/materias/programacion2/oxo/Profa
Yusneyi_Tema8_POOClasesyObjetos.pdf [consulta: lunes, 23 de marzo del 2015,
hora: 8:52]
 Definifionabc, Definición de paradigma, 2015,
http://www.definicionabc.com/general/paradigma.php [consulta: lunes, 23 de marzo
del 2015, hora: 12:52]
 Javaenejemplos, Paradigma de la programación orientada a objetos, 2010,
http://javaenejemplos.blogspot.com/2010/06/paradigma-de-la-programacion-
orientada_07.html [consulta: lunes, 23 de marzo del 2015, hora: 13:13]
 Wikipedia, Programación orientada a objetos, 2013,
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos [consulta:
martes, 24 de marzo del 2014, hora: 6:23]

También podría gustarte