La creación de instancias tiene los mismos tipos de encapsulación que tenemos para los componentes de la clase: pública, protegida y privada.
La sentencia CREATE OBJECT para instanciar un objeto se puede utilizar en el ámbito de visibilidad que permite la encapsulación de instancia declarada en la definición de la clase.
Si no indicamos la encapsulación de la instancia en cuanto definimos una clase, el sistema le asigna el encapsulamiento público por defecto.
Encapsulación pública para la creación de las instancias
CLASS nombre_clase DEFINITION CREATE PUBLIC.
Se pueden crear instancias utilizando CREATE OBJECT fuera de la clase, en las subclases y dentro de la clase.
Encapsulación protegida para la creación de las instancias
CLASS nombre_clase DEFINITION CREATE PROTECTED.
Se pueden crear instancias utilizando CREATE OBJECT en las subclases y dentro de la clase.
Encapsulación privada para la creación de las instancias
CLASS nombre_clase DEFINITION CREATE PRIVADE.
Se pueden crear instancias utilizando CREATE OBJECT solo dentro de la clase.
En este artículo vamos a entender el funcionamiento creando en un programa ejecutable con la clase AULA_VIRTUAL. Restringiremos la creación de las instancias a las clases hijas. Para comprobar si funciona correctamente creamos la clase hija ALUMNO con el método de instancia ASIGNAR_ALUMNO en la sección pública.
Dentro del método instanciamos un objeto de la clase superior AULA_VIRTUAL.
No se pueden crear instancias fuera del árbol jerárquico cuando la encapsulación de una clase está protegida: CREATE PROTECTED.