sábado, 13 de junio de 2015

Unidad 4 y 5

 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 PROGRAMACIÓN


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.


ü  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 lenguajes de programación orientada a objetos tratan a los programas como conjuntos de objetos que se ayudan entre ellos para realizar  acciones.
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