UNIDAD 4: PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué es 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 tiempos de programación.
RAZONES FUNDAMENTALES QUE ESTAN
INFLUYENDO EN LA IMPORTANCIA DE
LA POO.
·
La OO
(orientación a objetos) es especialmente adecuada para realizar determinadas
aplicaciones, sobre todo la realización de prototipos y simulación de
programas.
·
Los
mecanismos de encapsulación de POO soportan un alto grado de reutilización de
códigos, que se incrementa por sus mecanismos de herencia.
·
En el
entorno de la base de datos, la OO se adjunta bien a los modelos semánticos
de todos para solucionar las
limitaciones de los modelos tradicionales.
·
Aumento
espectacular delos lenguajes de programación orientados a objetos.
UN MUNDO DE OBJETOS
OBJETOS: Son entidades que se pueden distinguir de manera clara y
definida, ejemplos de un objeto puede ser una persona, un libro.
Un objeto consta de:
·
Tiempo de vida: la duración de un objeto en un programa siempre está limitado en el
tiempo. la mayoría de los objetos solo existen durante una parte de La
ejecución del programa.
·
Estado: Todo
objeto posee un estado, definido por sus
atributos. El estado de un objeto es La apariencia que el objeto presenta al
usuario.
·
Comportamiento: Todo objeto ha de presentar una interfaz, definida por sus métodos, para
que el resto de objetos que componen los programas puedan interactuar con él.
COMUNICACIÓN ENTRE OBJETOS.
El mensaje es esencialmente una
orden que se envía a un objeto para indicarle que realice alguna acción.
Un mensaje contiene tres elementos: el objeto receptor, el tipo de evento y
los datos necesarios para el receptor.
Mensaje
Cuando se produce un evento, el objeto receptor sabe cuál es el objeto emisor, que evento se
produjo y el valor de los datos asociados con dicho evento.
ESTRUCTURA INTERNA DE UN OBJETO:
Propiedades: Son las características observables de un objeto.
Las propiedades se reconocen por que
describen un aspecto del objeto que podemos medir con una escala establecida
previamente.
Métodos: Se define como un conjunto de acciones que un objeto
puede realizar para conseguir un propósito. Los métodos representan la parte
viva e interesante de un objeto y se emplea habitualmente para modificar las
propiedades de un objeto.
Eventos: Todos los objetos se relacionan con el mundo que
los rodea, esto significa que ningún objeto está aislado y siempre
recibe el influjo de otros objetos. Los eventos son los estímulos que un objeto
ejerce sobre otro.
CLASES
Los objetos están organizados en familias claramente delimitadas. Una
familia se reconoce por que reúnen grupos de objetos que heredan elementos
entre si. El modelo de programación visual, al igual que la naturaleza,
organiza los objetos en clases
(familias), así una clase es el conjunto de objetos que pertenecen a una
misma familia.
HERENCIA
Un objeto es heredero de otro cuando poseen todas sus propiedades y todos
sus métodos y reconoce todos sus eventos, aunque que puede disfrutar de
propiedades, métodos y eventos adicionales. Se define la herencia como la
característica que tienen los objetos de derivarse unos de otros. Por otro parte la herencia
supone una clase base y una jerarquía de clases que contienen las clases
derivadas de la clase base.
TIPOS DE HERENCIA
Herencia simple: En esta jerarquía cada clase tiene como máximo una sola
súper clase .La herencia siempre permite
que una clase herede las propiedades y métodos de su súper clase en una
cadena jerárquica.
Herencia múltiple: Una maya o retícula consta de clases, cada una de las
cuales pueden tener dos o más súper
clases inmediatas. Una herencia múltiple es aquella en la que cada clase puede heredar
las propiedades y métodos de cualquier número de clases.
CARACTERÍSTICAS DE LA HERENCIA
Anulación o sustitución: Cuando redefino un método heredado en la subclase, se
dice estoy anulando o sustituyendo dicho método. Sería deseable una “herencia selectiva”: seleccionar lo que se
requiere heredar es la mejor forma de anulación.
Sobrecarga: Propiedad que puede darse también sin herencia. Es designar varios elementos (identificadores) con el mismo nombre. No es anulación.
CLASES ABSTRACTAS
Con frecuencia, cuando se diseña un modelo orientado a objetos es útil introducir
clases a cierto nivel que pueden no existir en la realidad pero que son
construcciones conceptuales útiles. Estas clases se conocen como clases
abstractas.
Las clases abstractas no tienen instancia
directamente. Se utilizan para agrupar otras clases y capturar información que
es común al grupo. Sin embargo, las subclases de clases abstractas que
corresponden a objetos del mundo real si pueden tener instancias.
Una clase abstracta podría ser una impresora:
+inyectores+agujas.
ENCAPSULAMIENTO.
Un objeto está separado del medio que lo rodea por algún tipo de envoltura. Esta separación
es la que determina la unidad del objeto, es decir, lo convierte en algo
independiente. La envoltura oculta los detalles relacionados con la construcción
interior del objeto esto significa que solo conocemos del objeto aquello que es
revelado por sus métodos. Se le llama encapsulamiento a la propiedad que tienen
los objetos de ocultar detalles internos así se permite asegurar que el
contenido de la información de un objeto este oculta al mundo exterior (por
ejemplo un objeto a A no conoce lo que hace un objeto B y viceversa).
POLIMORFISMO
El polimorfismo se presenta cuando se ha creado
objetos que pertenecen a clases que han derivada de otras clases. En otras
palabras, el polimorfismo aparece en las clases derivadas.
También se dice que el polimorfismo es la propiedad
que indica literalmente, la posibilidad que una entidad tome muchas formas, en
términos prácticos el polimorfismo permite referirse a objetos de clases
distintas mediante el mismo elemento de programas y realizar la misma operación
de diferentes formas.
OBJETOS
COMPUESTOS.
Una de las características que hacen a los objetos
ser muy potente es que pueden contener otros objetos. Los objetos que contienen
otros objetos se denominan objetos compuestos. Esta característica ofrece dos
ventajas importantes:
Los objetos contenidos pueden
cambiar en tamaño y composición, sin afectar al objeto compuesto que los
contiene, Esto hace el mantenimiento de sistemas complejos de objetos anidados
sea más sencillo.
Los objetos contenidos están libres para participar en cualquier número de objetos compuestos, en lugar de estar bloqueado en único objeto compuesto.
EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN
BAJO NIVEL
|
ALTO NIVEL
|
ORIENTADOS A OBJETOS
|
Maquina
|
Estructurados
|
Herencia
|
Ensamblador
|
No estructurados
|
Encapsulamiento
|
Polimorfismo
|
CLASIFICACIÓN DE LOS LENGUAJES DE
LENGUAJES DE BAJO DE NIVEL
ü
Lenguaje de maquina
Es el lenguaje que entiende el procesador y está basado en el sistema binario. Está
formado por un conjunto de instrucciones o códigos que pueden ser interpretados
directamente por el procesador. El
lenguaje maquina varía dependiendo del
hardware y evoluciona con cada versión del CHIP. Cuando se habla del lenguaje
máquina del IBM PC y compatibles, se habla principalmente de la familia de
Intel 80xX y de su evolución hasta el actual Core.
La principal ventaja del lenguaje maquina es su alta velocidad, debida a la
traducción inmediata de los códigos
binarios. Entre sus muchas debilidades
encontramos:
* Codificación
compleja: El programador
debe entender el significado de los unos y ceros y tener tablas de
instrucciones y variables. En los procesadores actuales de 64 bits, por
ejemplo, una instrucción tiene 64 unos y
ceros, lo cual es muy difícil de controlar.
* Errores en la codificación y depuración compleja: Debido a la complejidad de los códigos.
* Productividad mínima: Tiempos de desarrollo muy alto
* No portabilidad: un programa solo funciona sobre el hardware para el que es hecho.
* No portabilidad: un programa solo funciona sobre el hardware para el que es hecho.
ü
Lenguaje ensamblador
Son una representación más entendible para el humano de
los códigos del lenguaje máquina. Cada instrucción en lenguaje ensamblador representa una instrucción en el
lenguaje máquina. El lenguaje ensamblador aparece casi a la par con el lenguaje
de máquina, esto debido a que los fabricantes de hardware diseñan sus chips
pensando ya en las instrucciones de un lenguaje de ensamblado.
Un ejemplo de una
instrucción en el lenguaje de máquina y en lenguaje ensamblador.
LENGUAJE DE MAQUINA
|
LENGUAJE ENSAMBLADOR
|
0010111000000001
0000000000001010
|
MOP ax, 10
|
LENGUAJES
DE ALTO NIVEL
Son lenguajes más
afines con el programador en los que una instrucción pueden representar varias
instrucciones en lenguaje de máquina. Incluyen los lenguajes estructurados y no
estructurados. Como ejemplo tenemos: Basic, pascal, APL, FORTRAN (aplicaciones
científicas), COBOL (para aplicaciones de procesamiento de datos), LISP Y
PROLOG (para inteligencia artificial).
Los lenguajes compilados son aquellos que necesitan de un compilador para
la traducción al lenguaje de máquina. La traducción o compilación se hace solo
una vez, y el resultado es un código objeto entendible por la máquina. Para
ejecutar un programa compilado no se necesita de su compilador.
ALGUNAS
DE LAS CARACTERÍSTICAS DE LOS LENGUAJE DE ALTO NIVEL
Depuración más sencilla: Debido a que el código es más legible, la depuración también se hace más fácil. Con
la ayuda editores (IDES – Entornos de desarrollo integrados) la compilación,
depuración y ejecución se hacen más fácilmente. Productividad aceptable: Son más productivos que los lenguajes de alto nivel.
UNIDAD 5 : LENGUAJES DE PROGRAMACIÓN ORIENTADA A OBJETOS.
Los objetos tienen toda la información (atributos) que los diferencia de
otros pertenecientes a otra clase.
Basados en objetos
|
Basados en clases
|
Orientación
a objetos
|
Si la síntesis
semántica de lenguaje soportan las características de objetos que hemos
mencionado.
|
Si un lenguaje
está basado en objetos y además soporta clase, se dice que está basado en
clases.
|
Si un lenguaje
de programación soporta objetos,
clases y además permite la jerarquía de dichas clases, entonces se
dice que es un lenguaje de programación orientada a objetos.
|
CARACTERÍSTICAS DE LOS LENGUAJES
ORIENTADOS A OBJETOS
ENCAPSULACION: es la cualidad de
unificar los datos y la forma de manipularlos,
de esta forma podemos ocultar el
funcionamiento de una clase y exponer solo los datos que manipula (mediante
propiedades).
HERENCIA: es la cualidad de
poder crear nuevas clases (o tipos) basadas en otras clases, de forma que la
nueva clase obtenga todas las
características de la clase que ha heredado, tanto los datos que contiene como
la forma de manipularlos pudiendo añadir nuevas características e incluso
cambiar el comportamiento de algunas de
las incluidas en la clase base.
POLIMORFISMO: es la cualidad de implementar de forma particular
algunas de las características que tienen las clases, de forma que cuando
necesitamos usarlas no nos preocupe la complementación interna que cada uno
tenga, lo que realmente nos interesa o nos debe importar es que podemos usar
esas características e incluso podamos acceder a ellas de forma anónima.
No hay comentarios:
Publicar un comentario