Introducción A La Programación Orientada A Objetos
Enviado por Mindtaker • 25 de Abril de 2014 • 2.614 Palabras (11 Páginas) • 208 Visitas
Un nuevo concepto en programación
Extraído de "Understanding Active X and OLE" por David Chappel
"En el transcurso de los últimos 35 años, los diseñadores de hardware para ordenadores han pasado del diseño de equipos del tamaño de un hangar a ordenadores portátiles basados en microprocesadores minúsculos.
En el mismo período, los desarrolladores de software han pasado de escribir programas en ensamblador y COBOL a escribirlos en C y C++. Podríamos denominar a esto progreso (algunas personas no estarían de acuerdo), pero claramente el mundo del software no progresa tan rápidamente como el mundo del hardware. Entonces, ¿qué tienen los diseñadores de hardware que los desarrolladores de software no poseen?
La respuesta está en los componentes utilizados. Si los ingenieros de hardware electrónico tuvieran que comenzar desde un montón de arena cada vez que diseñan un nuevo dispositivo de hardware, y el primer paso fuese la extracción de silicio para fabricar placas de circuitos integrados, el progreso tampoco sería tan veloz. Sin embargo, un diseñador de hardware siempre construye un sistema que se basa en componentes ya preparados, cada uno con una función específica y que brinda un conjunto de servicios a través de interfaces definidas. La tarea de los diseñadores de hardware es considerablemente más fácil gracias al trabajo de sus predecesores.
La reutilización de los componentes es también un método para crear mejores software. Aún hoy, los desarrolladores de software comienzan desde un montón de arena y siguen los mismos pasos que dieron cientos de desarrolladores en el pasado. A menudo el resultado es sorprendente, pero podría mejorarse. La creación de nuevas aplicaciones a partir de componentes ya existentes y que ya han sido probados, tiende siempre a producir códigos más fiables. Además, se ha demostrado que es más rápida y económica, factores no menos importantes."
El concepto de objeto
La programación orientada a objetos consiste en ordenar datos en conjuntos modulares de elementos de información del mundo real (denominado un dominio). Estos elementos de datos se llaman objetos. Estos datos se agrupan de acuerdo a las características principales del mundo real de estos elementos (tamaño, color, etc.).
El enfoque de objetos es una idea que se ha probado con creces. Simula fue el primer lenguaje de programación en implementar el concepto de clases en 1967. En 1976, Smalltalk implementó los conceptos de encapsulación, agrupación y herencia (los conceptos principales de la programación orientada a objetos). Por otra parte, se han implementado varios lenguajes de programación orientada a objetos a escala global (Eiffel, Objective C, Loops, etc.).
La dificultad que presenta este enfoque es la creación de una representación abstracta, en forma de objetos, de entidades que realmente existen (perro, auto, lámpara eléctrica...) o que existen virtualmente (seguridad social, clima...).
Un objeto se caracteriza por varios conceptos:
• Atributos: estos son los datos que caracterizan al objeto. Son variables que almacenan datos relacionados al estado de un objeto.
• Métodos (usualmente llamados funciones de miembro): Los métodos de un objeto caracterizan su comportamiento, es decir, son todas las acciones (denominadas operaciones) que el objeto puede realizar por sí mismo. Estas operaciones hacen posible que el objeto responda a las solicitudes externas (o que actúe sobre otros objetos). Además, las operaciones están estrechamente ligadas a los atributos, ya que sus acciones pueden depender de, o modificar, los valores de un atributo.
• Identidad: El objeto tiene una identidad, que lo distingue de otros objetos, sin considerar su estado. Por lo general, esta identidad se crea mediante un identificador que deriva naturalmente de un problema (por ejemplo: un producto puede estar representado por un código, un automóvil, por un número de modelo, etc.).
El concepto de clases
Una clase es la estructura de un objeto, es decir, la definición de todos los elementos de que está hecho un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una instancia de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o incluso evento).
Una clase se compone de dos partes:
• Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren al estado del objeto
• Métodos (denominados, por lo general, funciones miembros): son funciones que pueden aplicarse a objetos
Si tenemos una clase llamada auto, los objetos Peugeot y Renault serán instancias de esa clase. También puede haber otros objetos Peugeot 406, diferenciados por su número de modelo. Asimismo, dos instancias de una clase pueden tener los mismos atributos, pero considerarse objetos distintos independientes. En un contexto real: dos camisas pueden ser idénticas, pero no obstante, también ser diferentes de alguna manera. Sin embargo, si las mezclamos es imposible distinguir una de la otra.
El concepto de encapsulación
La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.
Ocultación de datos
El usuario de una clase en particular no necesita saber cómo están estructurados los datos dentro de ese objeto, es decir, un usuario no necesita conocer la implementación Al evitar que el usuario modifique los atributos directamente y forzándolo a utilizar funciones definidas para modificarlos (llamadas interfaces), se garantiza la integridad de los datos (por ejemplo, uno puede asegurarse de que el tipo de datos suministrados cumple con nuestras expectativas bien que los se encuentran dentro del periodo de tiempo esperado).
La encapsulación define los niveles de acceso para elementos de esa clase. Estos niveles de acceso definen los derechos de acceso para los datos, permitiéndonos el acceso a datos a través de un método de esa clase en particular, desde una clase heredada o incluso desde cualquier otra clase. Existen tres niveles de acceso:
• público: funciones de toda clase pueden acceder a los datos o métodos de una clase que se define con el nivel de acceso público. Este es el nivel de protección de datos más bajo
• protegido: el acceso a los datos está restringido a las funciones de clasesheredadas, es decir, las funciones miembro de esa clase y todas lassubclases
• privado: el acceso a los datos está restringido a los métodos
...