Está en la página 1de 4

Historia u origen de la programación orientada a objetos

Los conceptos de la programación orientada a objetos tienen origen en Simula


67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y
Kristen Nygaard del Centro de Cómputo Noruego en Oslo. En este centro, se
trabajaba en simulaciones de naves, que fueron confundidas por la explosión
combinatoria de cómo las diversas cualidades de diferentes naves podían
afectar unas a las otras. La idea surgió al agrupar los diversos tipos de naves
en diversas clases de objetos, siendo responsable cada clase de objetos de
definir sus propios datos y comportamientos. Fueron refinados más tarde en
Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue
escrita sobre Basic) pero diseñado para ser un sistema completamente
dinámico en el cual los objetos se podrían crear y modificar "sobre la marcha"
(en tiempo de ejecución) en lugar de tener un sistema basado en programas
estáticos.

La programación orientada a objetos se fue convirtiendo en el estilo de


programación dominante a mediados de los años ochenta, en gran parte
debido a la influencia de C++, una extensión del lenguaje de programación C.
Su dominación fue consolidada gracias al auge de las Interfaces gráficas de
usuario, para las cuales la programación orientada a objetos está
particularmente bien adaptada. En este caso, se habla también de
programación dirigida por eventos.
Las características de orientación a objetos fueron agregadas a muchos
lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal,
entre otros. La adición de estas características a los lenguajes que no fueron
diseñados inicialmente para ellas condujo a menudo a problemas de
compatibilidad y en la capacidad de mantenimiento del código. Los lenguajes
orientados a objetos "puros", por su parte, carecían de las características de las
cuales muchos programadores habían venido a depender. Para saltar este
obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados
en métodos orientados a objetos, pero permitiendo algunas características
imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano
y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido
esencialmente reemplazado por Java, en gran parte debido a la aparición de
Internet, y a la implementación de la máquina virtual de Java en la mayoría de
navegadores. PHP en su versión 5 se ha modificado, soporta una orientación
completa a objetos, cumpliendo todas las características propias de la
orientación a objetos.

Programación orientada a objetos

La programación Orientada a objetos (POO) es una forma especial de


programar, más cercana a como expresaríamos las cosas en la vida real que
otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta,
para escribir nuestros programas en términos de objetos, propiedades,
métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar
una pequeña base que permita soltarnos un poco con este tipo de
programación.
Motivación

Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida


real..
Pues en un esquema POO el coche sería el objeto, las propiedades serían las
características como el color o el modelo y los métodos serían las
funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelizaríamos en un esquema POO
una fracción, es decir, esa estructura matemática que tiene un numerador y un
denominador que divide al numerador, por ejemplo 3/2.
La fracción será el objeto y tendrá dos propiedades, el numerador y el
denominador. Luego podría tener varios métodos como simplificarse, sumarse
con otra fracción o número, restarse con otra fracción, etc.

Clases en POO

Las clases son declaraciones de objetos, también se podrían definir como


abstracciones de objetos. Esto quiere decir que la definición de un objeto es la
clase. Cuando programamos un objeto y definimos sus características y
funcionalidades en realidad lo que estamos haciendo es programar una clase.
En los ejemplos anteriores en realidad hablábamos de las clases coche o
fracción porque sólo estuvimos definiendo, aunque por encima, sus formas.

Propiedades en clases
Las propiedades o atributos son las características de los objetos. Cuando
definimos una propiedad normalmente especificamos su nombre y su tipo. Nos
podemos hacer a la idea de que las propiedades son algo así como variables
donde almacenamos datos relacionados con los objetos.

Métodos en las clases


Son las funcionalidades asociadas a los objetos. Cuando estamos programando
las clases las llamamos métodos. Los métodos son como funciones que están
asociadas a un objeto.

Objetos en POO

Los objetos son ejemplares de una clase cualquiera. Cuando creamos un


ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta
acción de crear un objeto a partir de una clase se llama instanciar (que viene
de una mala traducción de la palabra instace que en inglés significa ejemplar).
Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o
definición de fracción sería la clase, pero cuando ya estamos hablando de una
fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instrucción especial que puede
ser distinta dependiendo el lenguaje de programación que se emplee, pero
será algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se tiene que crear una instancia de la
clase que sigue a continuación. Dentro de los paréntesis podríamos colocar
parámetros con los que inicializar el objeto de la clase coche.
Estados en objetos

Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo,


cuando tenemos un coche la propiedad color tomará un valor en concreto,
como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de
un objeto se llama estado.

Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza


el operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por último el
nombre e la propiedad a la que deseamos acceder. En este ejemplo estamos
cambiando el valor del estado de la propiedad del objeto a rojo con una simple
asignación.

Mensajes en objetos
Un mensaje en un objeto es la acción de efectuar una llamada a un método.
Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha
estamos pasándole el mensaje “ponte en marcha”.

Para mandar mensajes a los objetos utilizamos el operador punto, seguido del
método que deseamos invocar.
miCoche.ponerseEnMarcha()

En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar


paréntesis igual que cualquier llamada a una función, dentro irían los
parámetros.
Otras cosas

La herencia sirve para crear objetos que incorporen propiedades y métodos de


otros objetos. Así podremos construir unos objetos a partir de otros sin tener
que reescribirlo todo.

El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que


estamos trabajando, y abstraernos para definir un código que sea compatible
con objetos de varios tipos.

Abstracción denota las características esenciales de un objeto, donde se


capturan sus comportamientos.

Encapsulamiento sirve para reunir todos los elementos que pueden


considerarse pertenecientes a una misma entidad, al mismo nivel de
abstracción.

Lenguaje de programación Java

El lenguaje de programación Java, fue diseñado por la compañía Sun


Microsystems Inc, con el propósito de crear un lenguaje que pudiera funcionar
en redes computacionales heterogéneas ( redes de computadoras formadas
por más de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo,
etc.),y que fuera independiente de la plataforma en la que se vaya a ejecutar.
Esto significa que un programa de Java puede ejecutarse en cualquier máquina
o plataforma. El lenguaje fue diseñado con las siguientes características en
mente:

Simple. Elimina la complejidad de los lenguajes como "C" y da paso al


contexto de los lenguajes modernos orientados a objetos. Orientado a Objetos.
La filosofía de programación orientada a objetos es diferente a la programación
convencional.

Familiar. Como la mayoría de los programadores están acostumbrados a


programar en C o en C++, el sintaxis de Java es muy similar al de estos.

Robusto. El sistema de Java maneja la memoria de la computadora por ti. No


te tienes que preocupar por apuntadores, memoria que no se esté utilizando,
etc. Java realiza todo esto sin necesidad de que uno se lo indique.

Seguro. El sistema de Java tiene ciertas políticas que evitan se puedan


codificar virus con este lenguaje. Existen muchas restricciones, especialmente
para los applets, que limitan lo que se puede y no puede hacer con los recursos
críticos de una computadora.

Portable. Como el código compilado de Java (conocido como byte code) es


interpretado, un programa compilado de Java puede ser utilizado por cualquier
computadora que tenga implementado el interprete de Java.

Independiente a la arquitectura. Al compilar un programa en Java, el


código resultante un tipo de código binario conocido como byte code. Este
códido es interpretado por diferentes computadoras de igual manera,
solamente hay que implementar un intérprete para cada plataforma. De esa
manera Java logra ser un lenguaje que no depende de una arquitectura
computacional definida.

Multithreaded. Un lenguaje que soporta multiples threads es un lenguaje que


puede ejecutar diferentes líneas de código al mismo tiempo.

Interpretado. Java corre en máquina virtual, por lo tanto es interpretado.

Dinámico. Java no requiere que compiles todas las clases de un programa


para que este funcione. Si realizas una modificación a una clase Java se
encarga de realizar un Dynamic Bynding o un Dynamic Loading para encontrar
las clases.

Java puede funcionar como una aplicación sola o como un "applet", que es un
pequeño programa hecho en Java. Los applets de Java se pueden "pegar" a una
página de Web (HTML), y con esto puedes tener un programa que cualquier
persona que tenga un browser compatible podrá usar.

También podría gustarte