Saltar la navegación

4.3.- Acceso a los atributos de objetos.

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.

Autoevaluación

Pregunta

¿Cuál de las siguientes expresiones es correcta para asignar el valor 50 al atributo importe del objeto factura1?

Respuestas

factura1.importe := 50;

importe.factura1 := 50;

50 := factura1.importe;

Retroalimentación