Titulo.jpg (10742 bytes)
FlechaI.jpg (2886 bytes) casa.jpg (31539 bytes) FlechaD.jpg (2791 bytes)

Clases y objetos

Definici�n de clase

  • secci�n private
  • secci�n protected
  • secci�n public
  • Definici�n de Objeto

    Una primera clase

    Un primer programa

    Un segundo programa

     


    El an�lisis es la base de la programaci�n estructurada, es decir, la descomposici�n de una tarea en tareas m�s peque�as. Existen los datos por una lado, con caracteristicas de constantes y variables, locables o globales. Por otra parte cada funci�n tiene sus propias variables, convirtiendose en  m�dulos independientes.   De esa forma un programa no es otra cosa que una colecci�n de funciones que son llamadas sucesivamente por la funci�n principal y que trabajan sobre los datos propios o generales del programa. 

    La Programaci�n Orientada a Objetos es el siguiente paso en la evoluci�n de los lenguajes de programaci�n.  En ella se combinan en un solo elemento autoconsistente funciones y datos.  El ente que permite esa agrupaci�n es la clase.

    De esta manera podemos definir las clases como una agrupaci�n de datos y funciones (m�todos) que pueden ser trasmitidas a otras clases por medio de la herencia.

    La clase tendr� una definici�n y una instrumentaci�n.  La definici�n est� formada por el nombre de la clase, su condici�n de acceso, los datos de la clase y las definiciones de las funciones (m�todos).  Despues del nombre se situaran los simbolos {} entre los que se ponen los datos y los m�todos. Despues del s�mbolo } pondremos ; lo que se�aala el fin de la clase.

    As� tendremos:

    [condici�n de acceso] [class] [nombre de la clase]

    {<private> : <datos>

                        <funciones>

      <protected>: <datos>

                           <funciones>

      [public] : <datos>

                    <funciones>

    };

    La secci�n �private�.  En esta secci�n de la clase se situar�n aquellos datos y funciones que s�lo pueden ser utilizados dentro de la propia clase.  Es la restricci�n m�s fuerte que disponemos en la programaci�n orientada a objeto (POO) y al mismo tiempo es la mejor manera de proteger nuestro c�digo. Va seguido de :.

    La secci�n �protected�.   Este es un nivel intermedio de acceso que nos brinda la POO.  Los datos y funciones situados en esta secci�n pueden ser utilizados por las funciones de la propia clase y por las clases herederas de ella pero no por los objetos que construimos a partir de la clase.

    La secci�n �public�. De la misma forma que private da inicio a la secci�n de su nombre el inicio de la secci�n public esta marcado por la propia palabra reservada public, seguida igual que private de dos puntos (:), al mismo tiempo que se da inicio a public se da fin a la secci�n private.   Los datos y funciones que se situan en est� secci�n pueden ser utilizados por: las funciones de la propia clase, por los objetos que se generan a partir de esa clase y por las clases que heredan de ella.  Es el m�ximo nivel de utilizaci�n que nos brinda la POO.

    Los objetos: Los objetos no son m�s que la realizaci�n concreta de una clase.  En la clase est�n los elementos generales validos a todos sus objetos, pero al mismo tiempo en el objeto se encontraran los valores especificos de los datos y funciones que presentan las clases.  As� podemos tener una clase que tiene datos de velocidad, tiempo, cantidad de elementos, pero todos ellos no son m�s que sitios de memoria donde pueden ponerse valores.  En el objeto tendremos ya que esas variables adoptan valores especificos que son los que le dan existencia propia a cada objeto.   Para definir un objeto simplemente ponemos el nombre de la clase seguido del nombre del objeto.

    Veamos la clase Cronometro como ejemplo de una clase m�nima.

    #inclue<dos.h>

    #include <conio.h>

    #include <time.h> //Bibliotecas de C++ utilizadas en la clase

    class Cronometro

    { private: time_t tiempo;   //variable del tipo propio de C++ time_t   utilizado para almacenar el tiempo

      public: void Arranca()

                   {tiempo = time(NULL);   //inicializaci�n de la variable tiempo

                   }

    void Muestra()

    {  tm *tcadena;      //variable de tipo tm utilizado para trasformar el tiempo en una cadena de caracteres

        tcadena = localtime(&tiempo);    //localtime es una funci�n de C++ que trasforma los datos time_t en tm

        printf("La hora es: %s",asctime(tcadena));     //impresi�n del tiempo en el formato de cadena

        getch();   //funci�n de C++ que espera que se oprima enter para continuar

    }

    };

    Una vez hecho esto guardamos el texto en un fichero que llamaremos "crono.h" .

    Ahora para trabajar con Objetos de la clase Cronometro, hacemos nuestro primer programa:

    #include <crono.h>

    void main()

    { Cronometro Reloj;

      Reloj.Arranca();

      Reloj.Muestra();

    }

    Como vemos hemos definido para hacer el programa la biblioteca, creada por nosotros, crono.h donde est� la clase Cronometro.

    Para crear el objeto Reloj le anteponemos el nombre de la clase, en este caso Cronometro.

    El llamado a las funciones Arranca() y Muestra() se realiza desde el objeto Reloj con las sentencias:

    Reloj.Arranca();   y Reloj.Muestra();

    De esa manera vemos que el dato tiempo no es utilizado directamente en el programa sino atrav�s de las funciones.

    Podemos hacer un  segundo programa con varios relojes:

     

    #include <crono.h>

    void main()

    { Cronometro Reloj1, Reloj2;

      Reloj1.Arranca();

      Reloj2.Arranca();

      Reloj1.Muestra();

      delay(2000);

      Reloj2.Muestra();

    }

    La salida que tendremos ser�n dos tiempos con una diferencia de 2 segundos con lo que comprobamos que cada objeto tiene su propio dato tiempo y que las funciones de cada objeto llaman a su propio dato y no a otro. 

    Cada objeto se comporta como un ente totalmente independiente.

    arriba.jpg (2978 bytes) casa.jpg (31539 bytes)
    Hosted by www.Geocities.ws

    1