domingo, 3 de julio de 2016

POO: Programación Orientada a Objetos.

INTRODUCCIÓN

Este articulo introducirá a el lector en los conceptos básicos de las programación orientada a objetos (POO). estos conceptos teóricos serán llevados a la practica en sucesivos casos. con el soporte del lenguaje de programación C++.

Las técnicas utilizadas para desarrolladas una programación orientada a objetos no son fáciles de asimilar., sobre todo cuando se ha desarrollado otro tipo de programación , por ejemplo programación estructurada ya que esto añade la dificultad que supone cambiar la forma de pensar. Por otra parte, para utilizar como herramienta de desarrollo el lenguaje C o C++. Si no es así, empiece adquiriendo los conocimientos fundamentales de este lenguaje, para lo cual le recomiendo ¡leer este blog! 

Si usted ya posee conocimientos de programación estructurada, olvídese en cierta forma de programar y piense en objetes, entendiendo por objeto una encapsulación de un conjunto de datos y de los métodos para manipular estos.Por ejemplo, i usted ya había trabajado antes con Microsft Windows, un ventana de Windows es un objeto. Este objeto posee unas determinadas características o datos, como son tamaño, color, barras de desplazamiento, titulo etc., y una determinadas funciones o métodos que permiten manipular esos datos. por ejemplo cuando el usuario apunta con el cursor del ratón o al botón de maximizar la ventana y haces click sobre el, se produce un mensaje dirigido a lapropia ventana que provoca a la ejecución del metodo que produce su maximización.

A su vez, los objetos  pueden establecer una comunicación entre ellos. por ejemplo, un click de ratón en determinado botón puede originar un mensaje dirigido a la propia ventana, que a su vez, origine un mensaje a otra ventana que haga que esta vez visualice y genere un mensaje asi misma, produciendo sobre ella la presentación de una determinada información.



PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS.

Según expuesto en el apartado anterior, la POO es una forma de programación que utiliza objetos que responde a secesos. Estos sucesos producen un flujo de mensajes entre los objetos, lo que origina cambios en el estado del objeto que recibe el mensaje. como por ejemplo, piense en el problema en el que un objeto caja visualice u comunicado cuando se haga click en otro objeto, botón de pulsación. La estructura del programa básicamente estara formada por dos objetos y un método que tiene que ejecutarse para poner el comunicado en la caja de texto.
Así , la POO es un enfoque sumamente natural, puesto que la estructura de los programas refleja directamente la estructura del problema.

Ademas la POO puede considerarse como un extención natural de la programación estructurada en un intento de potenciar los conceptos de modularidad y reutilizacion del código. Para entender esto, piense en un objeto libro con los atributos titulo y autor, y los métodos necesarios para manipularlos. En un instante determinado durante el desarrollo de una aplicación del objeto libro, atributos y autor, y los metodos necesarios para manipularlos, en un instante determinado para una aplicación, si la estructura de este objeto se ajusta exactamente a las necesidades de la misma, se utilizara, sino por ejemplo, por que necesitamos un nuevo atributo editorial, habría que crearlo de nuevo asumiendo el coste inherente a su total de construcción a no ser que podamos reutilizar el editorial el código, lo que significa asumir un coste menor, el inherente a la ampliación del objeto. esto fue uno de los motivos del éxito de la POO y si no piense en la cantidad de bibliotecas de objetos que se han creado para el desarrollo de interfaces gráficas del usuario.


sábado, 2 de julio de 2016

MECANISMOS BÁSICOS DE LA POO

Los mecanismos básicos de la programación orientada a objetos son: objetos, mensajes, métodos, clases y subclases.


OBJETOS

Un programa tradicional se conforma de procedimientos y de datos. Un programa orientado a objetos se compone solamente de objetos, un objeto es un encapsulación de genérica de datos y de procedimientos para manipularlos. Dicho de otra forma, un objeto es un entidad que tiene unos atributos particulares, los datos, y unas formas de operar sobre ellos, los métodos. Por lo tanto un objeto contiene por una parte operaciones que difunden su comportamiento y por otra, variables manipulables por esas operaciones, que definen su estado, por ejemplo una ventana Windows contiene operaciones como maximizar (los datos) y variables como ancho y alto ((los atributos).


viernes, 1 de julio de 2016

MENSAJES

MENSAJES


Cuando se ejecutara un programa orientado a objetos, los objetos están recibiendo, interpretando y respondiendo a mensajes de otros objetos. Esta marca una clara diferencia con respectos a los elementos de datos pasivos de los sistemas tradicionales; esto es, en la POO  el flujo de control funcional remplazado por el paso de mensajes entre objetos, lo que origina cambios en el estado del objeto. Por ejemplo, cuando un usuario envía un mensaje a un objeto denominado printer para que escriba un documento, printer puede enviar un mensaje a otro objeto ominado cola_impre para que le asigne un lugar en la cola de trabajos de impresión. A su vez cola_impre puede enviarle un mensaje a printer para requerirle que posible dar formato a el documento, y así sucesivamente. Un mensaje enviado a printer puede contener información para clarificar un petición. Por ejemplo el mensaje enviado a printer  puede incluir el nombre de la impresora. Finalmente, cuando un objeto recibe un mensaje, debe conocer perfectamente lo que tiene hacer, y cuando un objeto envía un mensaje, no necesita conocer cómo se desarrolla, sino simplemente conocer que se está desarrollando.

El conjunto de mensajes a los que un objeto puede responder se denomina protocolo.


En C++, un mensaje esta asociado con el prototipo de una función viendo que de tal forma que cuando se produce un mensaje la correspondiente función miembro de la clase a la que pertenece el objeto, esto es, el envió de un mensaje que equivale en C++ llamar una función miembro


jueves, 30 de junio de 2016

METODOS

METODOS
Un método (que en C++ se denomina función miembro) se implementa a una clase y determina como tiene que actuar al objeto cuando recibe un mensaje, en adición, las variables asociadas o  atributos permiten almacenar información para dicho objeto. Un método también puede enviar mensajes a otros objetos solicitando un acción o información.  La descripción o asignatura de un método se denomina operación.
En C++  un método se corresponde con la definición de la función miembro de una clase



La estructura más interna de un objeto esta oculta para otros usuarios y la única conexión que tienen con el exterior son los mensajes. Los atributos (datos) que oculta un objeto, solamente pueden ser manipulados por los métodos asociados a un propio objeto. Según lo expuesto, la ejecución de un programa orientado a objetos realizara fundamentalmente 3 cosas:
1.- Creará los objetos necesarios.
2.- Los mensajes enviados a unos a otros objetos darán lugar a que se procese internamente la información.

3.- finalmente cuando los objetos cuando no sean necesarios, serán eliminados liberándose la memoria ocupada por los mismo.

miércoles, 29 de junio de 2016

CLASES

CLASES

Una clase se puede considerar como una plantilla para crear objetos de esa clase o tipo. Una clase describe los métodos o atributos que definen las características comunes a todos los objetos de esa clase precisamente la clave para la programación orientadas a objetos esta en abstraer los métodos y atributos comunes a un conjunto de objetos y encapsularlos a una clase.
Una clase es un tipo de método definido por el usuario en otras palabras, una clase equivale a la generalización de un tipo específico de objeto. Un objeto es la concreción de una clase (algunos autores utilizan el termino instancia,  traducción directa al instante). Por ejemplo un objeto de clase C sería un ejemplar 0 de esa clase. Entonces, para disponer de un objeto primero se abstraen las características comunes de ese grupo de objetos, después se delimitan esas características comunes (clase)  y por último se pone nombre a uno a más ejemplares de la clase (objetos).

Aunque en las definiciones anteriores utilizando el método objeto como sinónimo de instancia, en general  cuando hablamos de objetos nos referimos a dependiendo de contexto a clases o instancias. Esto es así por que un objeto es por una parte un principio de organización y por otra una región de almacenamiento que contiene una copia de elemento especificado por una clase desde este segundo punto de vista por lo que no conviene popularizar el termino instancia.


martes, 28 de junio de 2016

SUBCLASES

SUBCLASES
Una característica primaria que define un sistema orientado a objetos es la manera en que trata las relaciones estructurales y semánticas entre clases de objetos, elimina la redundancia de almacenar el mismo atributo o método más veces de lo necesario. La idea clave es de una clasificación jerárquica en la que a clase hija o subclase hereda los atributos o métodos de si clase padre. Por ejemplo, supongamos una clase persona.
 Clase persona
      atributos
                      nombre
                      dirección
    Métodos
                     cambiarNombre
                     CambiarDireccion
                     ListarDatos

Podemos considerar las clases alumno y emplearlo en un nivel inferior. De este modo alumno y empleando heredaran los atributos y los métodos de su clase padre persona a las que podemos añadir a los atributos y los métodos de su clase padre persona a los que podamos añadir a los atributos y métodos propios de clase hija. Esto es,
Clase alumno subclase de persona
             atributos
             curso
método
                Metodo
                CambiarCurso
                ListarDatos

La declaración anterior supone que la clase alumno herede los atributos y métodos de la clase persona. Entonces un objeto de la clase alumno tendría los atributos Nombre, Dirección, Estudios y Curso y los métodos CambiarNombre, CambiarDireccion, Cambiar, CmabiarEstudios, CmabarCurso y ListarDatos, así mismo sucede que hemos redefinido el método ListarDatos en la clase alumno para adaptarlo a las nuevas necesidades.

Analogamente podemos considerar las clases administrativas y profesor como subclase de la clase empleado. La jerarquía de las clases resultamente se muestra en la figura siguiente:







Según lo expuesto, en una estructura jerárquica como la del ejemplo anterior, podemos establecer una relación entre una clase y subclase con los términos padre e hijo, respectivamente. La clase padre se denomina clase base y la clase hija clase derivada.