Sei sulla pagina 1di 7

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN

INTRODUCCIN

Es importante aclarar desde un principio la diferencia que existe entre programacin orientada a objetos y un lenguaje orientado a objetos. La programacin orientada a objetos es una filosofa, un modelo de programacin, con su teora y su metodologa, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programacin que permite el diseo de aplicaciones orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a Desarrollar aplicaciones orientadas a objetos aprenda primero la filosofa (o adquiera la forma de pensar) y despus el lenguaje, porque filosofa slo hay una y lenguajes muchos. En este documento veremos brevemente los conceptos bsicos de la orientada a objetos desde un punto de vista global, sin particularizar para lenguaje de programacin especfico. La programacin orientada a objetos, ha tomado las mejores ideas de la programacin estructurada y los ha combinado con varios conceptos nuevos y potentes que incitan a contemplar las tareas de programacin desde un nuevo punto de vista. La programacin orientada a objetos, permite descomponer ms fcilmente un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el lenguaje se pueden traducir estos subgrupos a unidades auto contenidas llamadas objetos. El trmino Programacin Orientada a Objetos (POO), hoy en da ampliamente utilizado, es difcil de definir, ya que no es un concepto nuevo, sino que ha sido el desarrollo de tcnicas de programacin desde principios de la dcada de los setenta, aunque sea en la dcada de los noventa cuando ha aumentado su difusin, uso y popularidad. No obstante, se puede definir POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin. Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. A los elementos de un objeto se les conoce como miembros; las funciones que operan sobre los objetos se denominan mtodos y los datos se denominan miembros datos.

FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN

PEQUEA RESEA HISTORICA Cuando las computadoras se inventaron, la programacin se realizaba con instrucciones binarias de mquina de modo que se cargaban a memoria a travs de un conjunto de interrupciones o a travs de un teclado numrico. A medida que avanzo la tecnologa el problema comenz a resolverse con la aparicin de un traductor llamado ensamblador, el cual converta estos programas en cdigo de mquina. La creacin de lenguajes de alto nivel, utilizaban la programacin estructurada, lo cual resolvi muchos problemas que se presentaban a la hora de realizar la programacin de una aplicacin. Pero conforme avanzo la complejidad de estas aplicaciones estas se tornaban incontrolables, adems de ser pocas seguras e inestables; es por eso que se dio paso a la creacin de una nueva manera de programacin llamada 'Programacin Orientada a Objetos'. ORIGENES DE LA PROGRAMACION ORIENTADA A OBJETOS 1. Etapa.- Lenguajes Ensambladores. La unidad de programacin es la instruccin, compuesta de un operador y los operandos. El nivel de abstraccin que se aplica es muy bajo. 2. Etapa.- Lenguajes de Programacin: Fortran, Algol, Cobol. Los objetos y operaciones del mundo real se podan modelar mediante datos y estructuras de control separadamente. En esta etapa el diseo del software se enfoca sobre la representacin del detalle procedimental y en funcin del lenguaje elegido. Conceptos como: refinamiento progresivo, modularidad procedimientos y programacin estructurada son conceptos bsicos que se utilizan en esta etapa. Existe mayor abstraccin de datos. 3. Etapa.- Se introducen en esta etapa los conceptos de abstraccin y ocultacin de la informacin. 4. Etapa.- A partir de los aos setenta se trabaja sobre una nueva clase de lenguajes de simulacin y sobre la construccin de prototipos tales como Simula-70 y basados en parte de ste, el Smalltalk. En estos lenguajes, la abstraccin de datos tiene una gran importancia y los problemas del mundo real se representan mediante objetos de datos a los cuales se les aade el correspondiente conjunto de operaciones asociados a ellos. Trminos como Abstraccin de datos, objeto, encapsulacin entre otros, son conceptos bsicos sobre la que se fundamenta la POO. CONCEPTOS DE LA PROGRAMACION ORIENTADA A OBJETOS La POO representa una metodologa de programacin que se basa en las siguientes caractersticas: Los diseadores definen nuevas clases (o tipos) de objetos. Los objetos poseen una serie de operaciones asociadas a ellos. Las operaciones tienden a ser genricas, es decir, operan sobre mltiples tipos de datos. Las clases o tipos de objetos comparten componentes comunes mediante mecanismos de herencia. La programacin orientada a objetos es un nuevo medio de organizar cdigo y datos que asegura un control creciente sobre la complejidad del proceso del desarrollo de software. La programacin orientada a objetos es una tcnica o estilo de programacin que utilizan objetos como bloque esencial de construccin. FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN


Es un paradigma de programacin que permite una representacin ms directa del mundo real en el cdigo a partir de unidades modularizables y reutilizables. Objeto: Una estructura de datos y conjunto de procedimientos que operan sobre dicha estructura. Una definicin ms completa de objeto es: una entidad de programa que consiste en datos y todos aquellos procedimientos que pueden manipular aquellos datos; el acceso a los datos de un objeto es solamente a travs de estos procedimientos, nicamente estos procedimientos pueden manipular, referenciar y/o modificar estos datos. Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cochera un Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del mundo real al mundo del software, tendremos un objeto Automvil con sus caractersticas predeterminadas: Marca = Ford Modelo = Focus Color = Azul Velocidad Mxima = 260 km/h Cuando a las caractersticas del objeto le ponemos valores decimos que el objeto tiene estados. Las variables almacenan los estados de un objeto en un determinado momento. Definicin terica: Un objeto es una unidad de cdigo compuesto de variables y mtodos relacionados. Clase: Podemos considerar una clase como una coleccin de objetos que poseen caractersticas y operaciones comunes. Una clase contiene toda la informacin necesaria para crear nuevos objetos. En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo, nuestro telfono celular es slo uno de los miles que hay en el mundo. Si hablamos en trminos de la programacin orientada a objetos, podemos decir que nuestro objeto celular es una instancia de una clase conocida como "celular". Los celulares tienen caractersticas (marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas, enviar mensajes multimedia, transmisin de datos, etc.) Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares comparten esas caractersticas comunes y construyen modelos o plantillas comunes, para que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la llamamos OBJETOS. Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo tipo y mismas caractersticas.

FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN


Caractersticas asociadas al POO Polimorfismo: Es la cualidad de tener ms de una forma. En el aspecto de la programacin orientada a objetos el polimorfismo se refiere que una misma operacin puede tener diferente comportamiento en diferentes objetos. En otras palabras diferentes objetos reaccionan al mismo mensaje de modo diferente. Encapsulacin: Es una tcnica que permite localizar y ocultar los detalles de un objeto. La encapsulacin previene que un objeto sea manipulado por operaciones distintas de las definidas. La encapsulacin es como una caja negra que esconde los datos y solamente permite acceder a ellos de forma controlada. Las principales razones tcnicas para la utilizacin de la encapsulacin son: Mantener a salvo los detalles de representacin, si solamente nos interesa el comportamiento del objeto. Modificar y ajustar la representacin a mejores soluciones algortmicas o a nuevas tecnologas de software. Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener. Abstraccin: En el sentido ms general, una abstraccin es una representacin concisa de una idea o de un objeto complicado. En un sentido ms especfico, la abstraccin localiza y oculta los detalles de un modelo o diseo para generar y manipular objetos. Una abstraccin tiene un significado ms general que la encapsulacin, pudiendo hablar de abstraccin de datos en lugar de encapsulacin de datos. Como resumen de los 3 conceptos expuestos anteriormente podemos decir que: Los objetos son encapsulaciones de abstracciones en la POO. La unidad de encapsulacin en la POO es el objeto. Herencia: La herencia es un proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto. Existen dos tipos de herencia llamadas simples y mltiples, las cuales se caracterizan de la siguiente manera:

Herencia simple: Es aquella en la que cada clase derivada hereda una nica clase; herencia simple se refiere adems de que cada clase tiene un solo antecesor, pero cada clase base puede tener muchos descendientes.

FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN

Herencia mltiple: Es aquella en la cual una clase derivada tiene ms de una clase base.

VENTAJAS DE LA PROGRAMACIN ORIENTADA A OBJETOS:


Las iteraciones sub-siguientes le POO son ms rpidos y ms fciles de realizar a diferencia de emplear un desarrollo convencional porque las rediciones estn ms localizadas. Las iteraciones son menores porque se descubren y se corrigen ms problemas durante el desarrollo que durante la implementacin del proyecto. Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms complejos. el sistema al mundo real. la creacin de programas visuales. Construccin de prototipos. Agiliza el desarrollo de software. Facilita el trabajo en equipo. Facilita el mantenimiento del software.

Resumen: Por qu seguimos buscando nuevas tcnicas de desarrollo? Por el aumento de la complejidad de los sistemas. En un programa orientado a objetos tendremos a un conjunto de objetos colaborando entre ellos. La orientacin a objetos es paradigma de que est de moda para el desarrollo de software. Un objeto es una abstraccin conceptual del mundo real que se puede traducir a un lenguaje de programacin orientado a objetos. Un objeto del mundo real tiene caractersticas y comportamientos, y de la misma manera, un objeto del mundo del software tiene variables y mtodos. FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN


Una Clase es una plantilla que define las variables y mtodos a ser incluidas en un tipo de objeto especfico. Los objetos tambin son llamados instancias de la Clase. Los objetos slo almacenan su estado. Se dice que un objeto tiene estado cuando tiene valores en sus variables. Los objetos se comunican entre ellos usando los mensajes. Un mensaje es la invocacin de un mtodo del objeto. La orientacin a objetos requiere de una metodologa que integre el proceso de desarrollo y un lenguaje de modelamiento con herramientas y tcnicas adecuadas.
LENGUAJES ORIENTADOS A OBJETOS

Simula.- Es un lenguaje de programacin orientada a objetos (POO). Fue el primero de los


lenguajes orientado a objetos. Varios aos despus de su desarrollo, casi todos los lenguajes modernos comenzaron a utilizar sus principios de orientacin a objetos. As fue como se popularizaron trminoscomo clases, objetos, instancias, herencia, polimorfismo, entre otros. Simula 67 fue lanzado oficialmente por sus autores Ole Johan Dahl y Kristen Nygaard en mayo de 1967, en la Conferencia de Trabajo en Lenguajes de Simulacin IFIO TC 2, en Lysebu cerca de Oslo Hoy en da, los creadores de Simula han desarrollado un nuevo lenguaje de programacin, llamado Beta, que generaliza todas las construcciones del lenguaje en una nica idea denominada patrn. Fue creado para hacer programas de simulacin, en donde los "objetos" son la representacin de la informacin ms importante.

Smalltalk.- Es considerado el primero de los lenguajes orientados a objetos (OOP), aunque


en realidad el primero en implementar programacin orientada a objetos fue Simula. En Smalltalk todo es un objeto, incluidos los nmeros reales o el propio entorno Smalltalk. Los orgenes de Smalltalk se encuentran en las investigaciones realizadas por Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg y otros durante los aos setenta en el Palo Alto Research Institute de Xerox (conocido como Xerox PARC). Sus investigaciones fueron para la creacin de un sistema informtico orientado a la educacin. El objetivo era crear un sistema que permitiese expandir la creatividad de sus usuarios, proporcionando un entorno para la experimentacin, creacin e investigacin. Java.-Es un lenguaje de programacin orientado a objetos, desarrollado por Sun Microsystems en 1995. El lenguaje en s mismo toma mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. La memoria es gestionada mediante un recolector de basura. Java se cre como una herramienta de programacin para ser usada en un proyecto de settop-box en una pequea operacin denominada the Green Project en Sun Microsystems en el ao1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabaj durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo. El lenguaje se denomin inicialmente Oak (por un roble que haba fuera de la oficina de Gosling), luego pas a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas grficas y finalmente se renombr a Java. FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

UNIVERSIDAD NACIONAL JOS FAUSTINO SANCHEZ CARRIN


C++.-Es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje hbrido. Posteriormente se aadieron facilidades de programacin genrica, que se sum a los otros dos paradigmas que ya estaban admitidos (programacin estructurada y la programacin orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programacin multiparadigma. El nombre C++ fue propuesto por Rick Mascitti en el ao 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientfico. Antes se haba usado el nombre "C con clases". En C++, la expresin "C++" significa "incremento de C" y se refiere a que C++ es una extensin de C. JavaScript.-Es un lenguaje de programacin interpretado, dialecto del ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, dbilmente tipado y dinmico. JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cul fue renombrado posteriormente aLiveScript, para finalmente quedar como JavaScript. El cambio de nombre coincidi aproximadamente con el momento en que Netscape agreg soporte para la tecnologa Java en su navegador web Netscape Navigator en la versin 2.003 en diciembre de 1995. La denominacin produjo confusin, dando la impresin de que el lenguaje es una prolongacin de Java, y se ha caracterizado por muchos como una estrategia de mercadotecnia de Netscape para obtener prestigio e innovar en lo que eran los nuevos lenguajes de programacin web.
del lenguaje de programacin Java. Sin embargo Javay JavaScript no estn relacionados y tienen semnticas y propsitos diferentes.

JavaScript se dise con una sintaxis similar al C, aunque adopta nombres y convenciones

FACULTAD DE INGENIERIA---ESCUELA DE INGENIERIA INDUSTRIAL | COMPUTACIN I

Potrebbero piacerti anche