Para hacer referencia a un atributo de un objeto debes utilizar el nombre de dicho atributo, utilizando el punto para acceder al valor que contiene o bien para modificarlo. Antes debe ir precedido del objeto cuyo atributo deseas conocer o modificar.
nombre_objeto.nombre_atributo
Por ejemplo, la consulta del valor de un atributo puede utilizarse como parte de una asignación o como parámetro en la llamada a una función:
unNombre := usuario1.nombre;
dbms_output.put_line(usuario1.nombre);
La modificación del valor contenido en el atributo puede ser similar a la siguiente:
usuario1.nombre:= 'Nuevo Nombre';
Los nombres de los atributos pueden ser encadenados, lo que permite el acceso a atributos de tipos de objetos anidados. Por ejemplo, si el objeto sitio1 tiene un atributo del tipo de objeto Usuario, se accedería al atributo del nombre del usuario con:
sitio1.usuario1.nombre
Si se utiliza en una expresión el acceso a un atributo de un objeto que no ha sido inicializado, se evalúa como NULL
. Por otro lado, si se intenta asignar valores a un objeto no inicializado, éste lanza una excepción ACCESS_INTO_NULL
.
Para comprobar si un objeto es NULL
se puede utilizar el operador de comparación IS NULL
con el que se obtiene el valor TRUE
si es así.
De manera similar, al intentar hacer una llamada a un método de un objeto que no ha sido inicializado, se lanza una excepción NULL_SELF_DISPATCH
. Si se pasa como parámetro de tipo IN
, los atributos del objeto NULL
se evalúan como NULL
, y si el parámetro es de tipo OUT
o IN OUT
lanza una excepción al intentar modificar el valor de sus atributos.
Indicación de un problema que ocurre durante la ejecución de un programa.