lunes, 3 de enero de 2011

Los Mensajes

    Es una peticion de un objeto a otro objeto al que le solicita ejecutar uno de sus metodos. El objeto que envia la peticion se denomina emisor y el objeto que recibe la peticion se denomina receptor.

Estructura de un mensaje
  • Idemtidad del receptor (receptor)
  • Metodo que se ha de ejecutar (nombre del  
Nombre del Mensaje
    Es el nombre de la operacion por el cual nos referiremos a esta para ejecutarla.

Metodo
   Es el algoritmo ejecutado en respuesta a la recepción de un mensaje cuyo nombre se corresponde con el nombre del metodo, especificando como se ejecuta el mensaje.

El protocolo
   Es el conjunto de mensajes a los cuales puede responder un objeto.

Estructura de un mensaje
   envia <objetoA>.<metodo1(parametro1,parametro2,...,parametroN)

jueves, 30 de diciembre de 2010

Las Clases


Instaciacion de objetos
   Una clase es la descripcion de un conjunto de objetos, consta  de metodos y datos que resumen caracteristicas comunes de los objetos.     Es realmente la declaracion de un tipo de objeto que determina las estructuras de datos y operaciones asociadas con ese tipo.
Las clases son como plantillas que describen como estan construidos cierto tipos de objetos.
Cada vez que se construye un objeto de clase estamos creando lo que se llama  una instancia de una clase y la operacion correspondiente se llama instanciacion. Por tanto los objetos son instancias de clase.          




Representacion grafica de una clase
Declaracion de una clase
     La declaracion de una clase se divide en dos partes:
  1. Especificacion: Describe el dominio de la definicion y las propiedades de la instacia de esa clase.
  2. Implementacion: Describe como se implementa la especificacion, contiene los cuerpos de las operacion y los datos necesarios para que las funciones actuen adecuadmente.
Especificaciones de clase    La definicion o especificacion consiste en darle a la clase un nombre, darle nombre a los elementos que almacenan los datos y describen las funciones que realizan las acciones consideradas en los objetos.
Estructura interna de una clase 
Las clases estan formadas por :
  • Atributos: Los atributos describen el estado de un objeto. Este consta de dos partes:
    • Nombre atributo
    • Valor atributo 
  • Metodos: Un metodo es el algoritmo ejecutado en respuesta a la recepcion de un mensaje cuyo nombre se corresponde con el nombre del metodo
Estado
     Es simplemente el conjunto de valores de todas las variables que representan a los objetos variables de estado.

Estructura de una Clase
     Formato de declaracion de clase
         Clase NombreClase
                  Lista de Atributos
                  Lista de metodos
        Fin_clase

    Formato en C#
    class nombre_de_clase{
     //Declaracion de variables de instancia
     acceso_tipo tipo_dato var1;
     acceso_tipo tipo_dato var2;
     :
     acceso_tipo tipo_dato varN; 
     // Declaracion de metodos 
     acceso_tipo_recuperado tipo_dato metodo1(parametros){
      // cuerpo del metodo
     }
     acceso_tipo_recuperado tipo_dato metodo2(parametros){
      // cuerpo del metodo
     }
     :
     acceso_tipo_recuperado tipo_dato metodoN(parametros){
      // cuerpo del metodo
     }
 }   


Ejemplo:
  
     /* Programa Sencillo C#*/
    Using System;
    class example {
    //Debe haber por lo menos una invocacion a Main(){
        Console.Writeline("Poo0901II");
    }

miércoles, 22 de diciembre de 2010

¿ Que es un Objeto?

    Un Objeto es una unidad  o identidad que combina los datos y las funciones que operan sobre esos datos, por lo tanto en un objeto residen los datos de los lenguajes de programacion tradicionales como numeros, arreglos (arrays), cadenas (string) y registros, asi como las funciones o subrutinas que operan sobre ellos. Las funciones se pueden denominar funciones miembros o metodos son el unico medio de acceder a los datos privados de un objeto. Por lo tanto los datos estan encapsulados en una unica entidad o modulo.
    La encapsulacion de datos y la ocultacion de datos, ocurre debido a que los datos solo pueden ser manipulados por estas funciones  simplificando la escritura, depuracion y mantenimiento de programas.
   Estos conceptos los podemos definir utilizando nomenclatura de programacion orientada a objeto de la siguiente forma:
     Un Objeto es una entidad que contiene los atributos (datos) que decriben el estado de un objeto del mundo real y las acciones que se asocian con el objeto del mundo real, se designa por un nombre o identificador de objeto.
      El encasulamiento es la propiedad que permite incluir en una sola entidad (el modulo u objeto), la informacion (los datos o atributos) y las operaciones (los metodos o funciones) que operan sobre esa informacion.
Metodos y Mensajes
        Un mensaje es la accion que hace un objeto.
        Un metodo es el procedimiento o funcion que se invoca para actuar sobre un objeto y especifica como se ejecuta un mensaje.
        El protocolo es el conjunto de mensajes a los cuales puede responder un objeto.
Ejecucion de un programa Orientado a objeto
  • Los objetos son creados a medida que se necesitan
  • Los mensajes se mueven de un objeto a otro 
  • Cuando no se necesitan los objetos se borran y se libera la memoria         


sábado, 14 de agosto de 2010

Un Mundo de Objetos

  La Programacion Orientada a objeto, nace de la necesidad de construir aplicaciones de mayor tamaño, en donde se pudiera reutilizar las rutinas existentes en aplicaciones ya probadas con lo cual los desarrolladores se ahorraran tiempo en la realizacion de los nuevos proyectos.

 La programacion estructurada comenzo a presentar una serie de inconvenientes los cuales hacian a los proyectos desarrollados fueran de una alta complejidad y de un gran tamaño, con lo cual los hacia dificiles de mantener. Los problemas presentados por la programacion clasica son:
  •  Modelo mental anomalo. Nuestra Imagen del mundo se apoya en los Seres a los que asignamos con nombres sustantivos, mientras que la programacion clasica se basa en el comportamiento, representado usualmente por Verbos
  • Resulta dificil modificar y extender los programas, puesto que suele haber datos compartidos con varios subprogramas
  • Los programas son dificiles de mantener. Suelen tener errores ocultos que no surgen hasta despues de muchas horas de funcionamiento
  • Es dificil reutilizar programas. Es dificil aprovechar en una aplicacion nueva subrutinas que se diseñaron para otra.
  • La Coordinacion y organizacion entre programadores para la creacion de aplicaciones de envergadura es compleja
  Como todos sabemos el mundo esta compuesto por objetos, estos pueden ser animados, inanimados, seres vivos o cosas. Para el ser humano es mas facil pensar de esta manera y en esto se basa la programacion orientada a objeto, por tal razon podemos definirla :
"  Es un metodo de implementacion  en el que los programas se organizan como colecciones cooperativas de objetos. Cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son todas miembros de una jerarquia de clases unidas mediante relaciones de herencia. "Grady Booch".
  Las soluciones que aporta la programacion orientada a objeto a los problemas de la programacion tradicional son:
  •  Representacion Mucho más cercana a la realidad. Sistemas de software muy complejos se vuelven más simples de comprender.
  • En un sistema correctamente diseñado con OO es posible realizar cambios al nivel de las clases sin tener que realizar cambios en ningun otro punto del sistema, esto reduce el costo total de mantenimiento
  • La herencia y el Polimorfismo favorecen la reutilizacion de componentes individuales
  • Muchos problemas pueden ser detectados y corregidos en la fase de diseño reducciendo el trabajo de revision y mantenimiento del sistema 
La programacion orientada a objeto es el nuevo paradigma de programacion. Aunque esta comenzo con el lenguaje Simula67, creado en 1967 no fue hasta los años 90 que se populariso su uso con los sistemas operativos de ventanas y los lenguajes Visuales. De hecho la mayoria de los lenguajes que soportan la programacion orientad a objeto tiene como base lenguajes anteriores (Java-C, C++- C, C#-C, Visual Basic.Net - Basic, Delphi-Pascal, Etc), Por tal razon mas qu de creacion de lenguaje hablamos de evolucion de Lenguajes.