Programacion orientada a objetos
La programación orientada a Objetos básicamente define una serie de conceptos y técnicas de programación para representar acciones o cosas de la vida real basada en objetos, a diferencia de otras formas de programación como por ejemplo la estructurada, con la POO se trabaja de manera distinta vinculando diferentes conceptos tales como clases, objetos, métodos, propiedades, estados, herencia, encapsulación entre otros, generando cada vez interrelaciones en nuestro desarrollo en pro del funcionamiento del sistema principal, definiendo el programa como un conjunto de estos objetos relacionados entre si.
Los pilares de la programación orientada a objetos son : Herencia ,encapsulación, polimorfismo y la abstracción.
Evolución de los lenguajes de programación orientados a objetos
Simula 67
El primer lenguaje orientado a objetos es el Simula 67 , fue desarrollado por los noruegos :Krinsten Nygaard y Ole-Johan Dahl y fue presentado en el año 1967
Krinsten Nygaard y Ole-Johan Dahl |
Simula 67 fue primer lenguaje que presentó las nociones de clase y herencia jerárquica. No se admite la herencia múltiple. El ocultamiento de información se lleva a cabo “protegiendo” una característica, lo cual, a su vez, evita que sea heredada en lo sucesivo. Admite la sobrecarga de métodos. La comprobación de tipos se puede realizar, bien estáticamente en el momento de la compilación, para mayor eficiencia, o bien en el momento de la ejecución si se define una característica como “virtual”.
Smalltalk
Interfaz grafica del Smalltalk |
A principio de los años 70 ' en el centro de investigacion "Palo Alto Xerox " crearon Smalltalk fue el primer lenguaje Orientado a Objetos puro de los lenguajes Orientados a Objetos, es decir, únicamente utiliza clases y objetos
Los objetos Smalltalk presentan características comunes:
- Tienen una memoria propia.
- Poseen capacidad para comunicarse con otros objetos.
- Poseen la capacidad de heredar características de objetos ancestros.
- Tienen capacidad de procesamiento
D. Parnas uno de los creadores propuso la disciplina de ocultar la información.
Encapsulaba cada una de las variables globales de la aplicación en un solo módulo junto con sus operaciones asociadas, sólo mediante las cuales se podía tener acceso a esas variables.
El resto de los módulos (objetos) podían acceder a las variables sólo de forma indirecta mediante las operaciones diseñadas para este proposito
Interfaz
C++
C++ es un lenguaje de programación creado por Bjarne Stroustrup en 1983. Stroustrup tomó como base el lenguaje de programación más popular en aquella época el cual era C(diseñado en 1971 por Dennis Ritchie Ken Thompson basados B y BCPL) al que le añadio cualidades y características de las que carecía.
C++ es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y le agrega la capacidad de abstraer tipos como en Smalltalk.
La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitieran la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido
Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma
C++ introduce nuevas palabras clave y operadores para manejo de clases
C++ tiene los siguientes tipos fundamentales:
- Caracteres: char (también es un entero), wchar_t
- Enteros: short, int, long, long long
- Números en coma flotante: float, double, long double
- Booleanos: bool
- Vacío: void
- Tiene un conjunto completo de instrucciones de control.
- Permite la agrupación de instrucciones.
- Incluye el concepto de puntero (variable que contiene la dirección de otra variable).
- Los argumentos de las funciones se transfieren por su valor.
- E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones.
- Permite la separación de un programa en módulos que admiten compilación independiente.
Interfaz Grafica del Dev-c++ |
Eiffel
Eiffel es un lenguaje de programacion orientado a objetos diseñado por Bertrand Meyer en 1985. Este lenguaje dispone de diseño por contrato que facilita la deteccion de errores y la depuracion de codigos .
Las clases son la unidad basica , su gestion de memoria es automatica y es implementada por el recolector de basura.
Posee un panel central de la herencia , incluyendo herencia multiple.
Es un lenguaje orientado hacia el diseño de grandes aplicaciones y su compatibilidad asegura su portabilidad hacia otros sistemas operativos
Posee dos desventajas , la primera es el manejo de memoria , que no es de los mejores y la segunda es que sus librerias de clases son reducidas.
Hay 3 compiladores para Eiffel que son
- Small Eiffel
- ISE Eiffel
- Visual Eiffel
Otras caracteristicas de este lenguaje son :
- No es sensible a mayusculas y minusculas
- Programacion generica con y sin restricciones
- Rutinas de ejecucion unica
- Gestion de un sistema de tipo uniforme
Delphi
En este caso Delphi no es un lenguaje de programacion unicamente orientado a objetos , sino que es un entorno de desarrollo de software diseñado para la programacion visual . Pero existe una version especializada en objetos que es Objet Pascal y fue desarrollado por Apple computer en 1986 y se utilizaron para la Macintosh . En 1994 se dejo de utilizar este lenguaje cuando en Apple empezaron a utilizar chips de motorola de 68k , de arquitectura IBM que fue re-escrito en C++.
El desarrollo de Borland Delphi se inició en 1993, y Delphi 1.0 fue lanzado oficialmente en los Estados Unidos el 14 de febrero de 1995. Delphi presentó una nueva sintaxis usando la palabra clave "class" en lugar de "object", el constructor" Create" y un destructor virtual "Destroy " (no teniéndose así que llamar a "New" ni a" Dispose"), las propiedades, los punteros de método, y algunas otras cosas; y al mismo tiempo mantenía compatibilidad con la anterior sintaxis (permitiendo migración).
Java
Es un lenguaje de progamacion orientado a objetos que fue creado en 1995 (es una extension de C++) se popularizo en 1996 por su lanzamiento comercial de su primera version , la JDK 1.0
en Java todos los tipos, a excepción de los tipos fundamentales de variables (int, char, long...) son clase
en Java todos los tipos, a excepción de los tipos fundamentales de variables (int, char, long...) son clase
El código generado por el compilador Java es independiente de la arquitectura: podría ejecutarse en un entorno UNIX, Mac o Windows
Posee todos los conceptos en los que se basa la programacion orientada a objetos , como la herencia polimorfismo , encapsulamiento , entre otras cosas.
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.
Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas .
Proporciona numerosas comprobaciones en compilación y en tiempo de ejecución y especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos
La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, que combina la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido desde el principio para ser completamente orientado a objetos. Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en alguna clase
C#
Es un lenguaje de programacion orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .Net
Este lenguaje fue creado al principio de los 2000 por Microsoft. Con el C# se pretendió incorporar las ventajas o mejoras que tiene el lenguaje JAVA. Así se consiguió que tuviese las ventajas del C,del C++, pero además la productividad que posee el lenguaje JAVA y se le denomino C#
C# utiliza plantillas de proyecto, diseñadores, páginas de propiedades, asistentes de código, un modelo de objetos y otras características del entorno de desarrollo.
C# es simple, eficaz, con seguridad de tipos y orientado a objetos. Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y mantener la expresividad y elegancia
de los lenguajes de estilo de C.
Una variable de objeto de cierta clase no almacena los valores del objeto sino su referencia (al igual que Java).
El operador de asignación no copia los valores de un objeto, sino la referencia al mismo (al igual que Java).
Un constructor tiene el mismo nombre que su clase y es sintácticamente similar a un método.
La palabra clave this es una referencia al mismo objeto en el cual se usa.
Tiene la Capacidad para desarrollar componentes de software que se puedan usar en ambientes distribuidos.
Su codigo fuente es porable
El cambio de los programadores familiriazidaos a C , c++ y Java a este lenguaje es relativamente facil ya que posee caracteristicas similares a los anteriores
muy bien. 9
ResponderBorrarmuy bien. 9
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarUn detalle en la sección de Delphi. Donde dice: ...En 1994 se dejo de utilizar este lenguaje cuando en Apple empezaron a utilizar chips de motorola de 68k , de arquitectura IBM que fue re-escrito en C++...
ResponderBorrarEn realidad en 1994 se dejaron de utilizar los procesadores 680x0 de Motorola, y se los reeemplazó por los Power PC de IBM.