Un parámetro especial que puedes utilizar con los métodos MEMBER
es el que recibe el nombre SELF
. Este parámetro hace referencia a una instancia (objeto) del mismo tipo de objeto. Aunque no lo declares explícitamente, este parámetro siempre se declara automáticamente.
El tipo de dato correspondiente al parámetro SELF
será el mismo que el del objeto original. En las funciones MEMBER
, si no declaras el parámetro SELF
, su modo por defecto se toma como IN
. En cambio, en los procedimientos MEMBER
, si no se declara, se toma como IN OUT
. Ten en cuenta que no puedes especificar el modo OUT
para este parámetro SELF
, y que los métodos STATIC
no pueden utilizar este parámetro especial.
Si se hace referencia al parámetro SELF
dentro del cuerpo de un método, realmente se está haciendo referencia al objeto que ha invocado a dicho método. Por tanto, si utilizas SELF.nombre_atributo
o SELF.nombre_método
, estarás utilizando un atributo o un método del mismo objeto que ha llamado al método donde se encuentra utilizado el parámetro SELF
.
MEMBER PROCEDURE setNombre(Nombre VARCHAR2) IS
BEGIN
/* El primer elemento (SELF.Nombre) hace referencia al atributo del tipo de objeto mientras que el
segundo (Nombre) hace referencia al parámetro del método */
SELF.Nombre := Nombre;
END setNombre;