Documente Academic
Documente Profesional
Documente Cultură
UNIDAD I
Introducción a la Programación Orientada a Objetos
Orígenes de la POO
El primer lenguaje orientado a objetos fue Simula 67, un lenguaje diseñado para realizar
simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del centro de cómputo
Noruego en Oslo.
Las ideas en ese lenguaje fueron usados en otros lenguajes, desde derivados de Lisp y
pascal hasta la familia de lenguajes Smalltalk, los cuales fueron desarrollados por Xerox
PARC, pero diseñados para ser un sistema dinámico completo en el que los objetos
pudieran se creados y modificados sin necesitar un sistema basado en programas estáticos.
La programación orientada a Objetos se desarrollo como un lenguaje dominante a mitad de
1980, debido a la influencia de C++, una extensión del lenguaje C. Su dominancia fue
ayudada por la creciente popularidad de las interfaces graficas.
Las tecnologías orientadas a objetos se han convertido en la década de los noventa en uno
de los motores clave de la industria del software. El lenguaje Simula como se menciono
anteriormente, es uno de los lenguajes orientado a objetos más antiguos, fue desarrollado en
1967.
DEFINICION DE PARADIGMA
El concepto paradigma procede del griego paradeigma, que significa “ejemplo” o
“modelo”.
A partir de la década del ’60, comenzó a utilizarse para definir a un modelo o patrón en
cualquier disciplina científica o contexto epistemológico.
Que es la reutilización?
• “Cualquier procedimiento que produce o ayuda a producir un sistema mediante el nuevo
uso de algún elemento procedente de un esfuerzo de desarrollo anterior”.
CLASES.
Las clases son similares a los tipos de datos y equivalen a modelos o plantillas que
describen cómo se construyen ciertos tipos de objetos. Cada vez que se construye un objeto
a partir de una clase, estamos creando lo que se llama una instancia de esa clase.
Una clase es la representación de un conjunto de elementos que comparten las mismas
características.
Una clase es una estructura que contiene datos y procedimientos (funciones) que son
capaces de operar sobre esos datos. A partir de una clase se puede definir objetos, cada uno
de los cuales tienen un estado y unas operaciones específicas.
Ejemplo:
Supongamos que se desea diseñar una aplicación para controlar a todo el personal que
estudia o trabaja en el Instituto Tecnológico conociendo la información correspondiente a
cada uno de ellos.
2.1.1 E
nca
psulamiento.
Un objeto, desde nuestro punto de vista, puede verse como una pieza de software que
cumple con ciertas características:
encapsulamiento
herencia
Encapsulamiento significa que el objeto es auto-contenido, o sea que la misma definición
del objeto incluye tanto los datos que éste usa (atributos) como los procedimientos
(métodos) que actúan sobre los mismos. Cuando se utiliza programación orientada a
objetos, se definen clases (que definen objetos genéricos) y la forma en que los objetos
interactúan entre ellos, a través de mensajes. Al crear un objeto de una clase dada, se dice
que se crea una instancia de la clase, o un objeto propiamente dicho. Por ejemplo, una clase
podría ser "autos", y un auto dado es una instancia de la clase.
Evento: 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.
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ó.
Estado interno: es una propiedad invisible de los objetos, 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).
En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor
interno del atributo del objeto o de un estado interno, así como la "función" es un
procedimiento interno del método del objeto.
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 reimplementar su comportamiento. Esto suele hacerse
habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan
un comportamiento común. Cuando un objeto pertenece a más de una clase se llama
herencia múltiple; esta característica no está soportada por algunos lenguajes (como Java).