Diferencia entre revisiones de «Programación en Pascal/Los objetos y las clases»

Contenido eliminado Contenido añadido
Facon (discusión | contribs.)
mSin resumen de edición
Facon (discusión | contribs.)
Línea 30:
== Definición y Creación de un objeto ==
 
Para poder utilizar un objeto, es necesario declararlo como una variable o instancia en la sentencia siguiente:
Para
 
<source lang=pascal>var NombreObjeto : NombreClase;</source>
 
La simple declaración no es suficiente para poder manejar el objeto, es necesario realizar, la operación de construcción o instanciación del objeto, utilizando para ello un método constructor.
 
Todas las clases tienen por defecto un '''constructor''' denominado '''Create'''.
 
Create --> TObject
 
Hay que tener en cuenta que toda clase que se declare en Object Pascal hereda de la clase TObject (esta herencia se vera más adelante), esta clase tiene algunos métodos como el '''constructor''' '''Create''' y el '''destructor''' '''Destroy'''.
 
La sintaxis es la siguiente:
 
<source lang=pascal>NombreObjeto := NombreClase.Create;</source>
 
Esta sentencia se incluye en la parte de sentencias del objeto, los objetos son dinámicos, es decir, se crean y se destruyen en tiempo de ejecución. Al ejecutarse la instanciación se crea en memoria una estructura con los datos y referencias a los métodos de la clase, se ejecutan las posibles sentencias '''Create''' que por regla general serán sentencias de inicialización y por último se carga la dirección en memoria de las estructuras del objeto en la variable objeto.
 
Las variables objetos, contienen direcciones de memoria de los objetos, al ser estos dinámicos.
 
Destrucción de un objeto, para poder destruir un objeto en memoria se usa un destructor, todas las clases tienen '''Destroy''' o '''Free'''.
 
<source lang=pascal>NombreObjeto.Destroy;
NombreObjeto.Free;</source>
 
Al ejecutarse la operación de destrucción, se ejecutan las posibles sentencias del destructor, después se libera memoria y se queda la variable objeto indefinida.
 
La diferencia entre '''Destroy''' y '''Free''', es que el último comprueba si el objeto no tiene valor '''nil''' (valor nulo, que no existe el objeto), si haces un '''Destroy''' con nil, el programa se cerrara con error, por ello es conveniente usar el segundo.
 
Para referenciar los diferentes atributos y métodos de un objeto, se utiliza la calificación:
 
<source lang=pascal>NombreObjeto.NombreAtributo;
NombreObjeto.NombreMetodo(...);</source>
 
En la definición de parámetros de entrada y/o salida de un método no se deberán incluir, aquellos que correspondan a atributos del objeto ya que al hacerse la invocación al método asociado al objeto correspondiente lleva los diferentes atributos del objeto.