Apex - Clases

¿Qué es una clase?

Una clase es una plantilla o plano a partir del cual se crean los objetos. Un objeto es una instancia de una clase. Ésta es la definición estándar de Clase. Las clases de Apex son similares a las clases de Java.

Por ejemplo, InvoiceProcessorclass describe la clase que tiene todos los métodos y acciones que se pueden realizar en la factura. Si crea una instancia de esta clase, representará la factura única que se encuentra actualmente en contexto.

Creando clases

Puede crear una clase en Apex desde Developer Console, Force.com Eclipse IDE y también desde la página de detalles de Apex Class.

Desde Developer Console

Siga estos pasos para crear una clase de Apex desde Developer Console:

Step 1 - Vaya a Nombre y haga clic en Developer Console.

Step 2 - Haga clic en Archivo ⇒ Nuevo y luego haga clic en la clase Apex.

De Force.com IDE

Siga estos pasos para crear una clase desde Force.com IDE:

Step 1 - Abra Force.com Eclipse IDE

Step 2 - Cree un nuevo proyecto haciendo clic en Archivo ⇒ Nuevo ⇒ Clase Apex.

Step 3 - Proporcione el nombre de la clase y haga clic en Aceptar.

Una vez hecho esto, se creará la nueva clase.

Desde la página de detalles de la clase de Apex

Siga estos pasos para crear una clase desde la página de detalles de clase de Apex:

Step 1 - Haga clic en Nombre ⇒ Configuración.

Step 2- Busque 'Apex Class' y haga clic en el enlace. Se abrirá la página de detalles de la clase Apex.

Step 3 - Haga clic en 'Nuevo' y luego proporcione el Nombre de la clase y luego haga clic en Guardar.

Estructura de clases de Apex

A continuación se muestra la estructura de muestra para la definición de clase de Apex.

Syntax

private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName] {
   // Classs Body
}

Esta definición utiliza una combinación de modificadores de acceso, modos de uso compartido, nombre de clase y cuerpo de clase. Analizaremos todas estas opciones más a fondo.

Example

A continuación se muestra una estructura de muestra para la definición de clase de Apex:

public class MySampleApexClass {       //Class definition and body
   public static Integer myValue = 0;  //Class Member variable
   public static String myString = ''; //Class Member variable
   
   public static Integer getCalculatedValue () {
   // Method definition and body
   // do some calculation
      myValue = myValue+10;
      return myValue;
   }
}

Modificadores de acceso

Privado

Si declara el modificador de acceso como 'Privado', esta clase se conocerá solo localmente y no podrá acceder a esta clase fuera de esa pieza en particular. Por defecto, las clases tienen este modificador.

Público

Si declara la clase como 'Pública', esto implica que esta clase es accesible para su organización y su espacio de nombres definido. Normalmente, la mayoría de las clases de Apex se definen con esta palabra clave.

Global

Si declara la clase como 'global', todos los códigos de ápice podrán acceder a ella independientemente de su organización. Si tiene un método definido con la palabra clave de servicio web, debe declarar la clase contenedora con la palabra clave global.

Modos de compartir

Analicemos ahora los diferentes modos de compartir.

Con compartir

Esta es una función especial de las clases de Apex en Salesforce. Cuando una clase se especifica con la palabra clave 'Con uso compartido', tiene las siguientes implicaciones: Cuando la clase se ejecute, respetará la configuración de acceso del usuario y el permiso de perfil. Supongamos que la acción del usuario ha activado la actualización de registros para 30 registros, pero el usuario tiene acceso a solo 20 registros y 10 registros no son accesibles. Luego, si la clase está realizando la acción para actualizar los registros, solo se actualizarán 20 registros a los que el usuario tiene acceso y el resto de 10 registros no se actualizarán. Esto también se denomina modo de usuario.

Sin compartir

Incluso si el Usuario no tiene acceso a 10 registros de 30, todos los 30 registros se actualizarán mientras la Clase se está ejecutando en el modo Sistema, es decir, se ha definido con la palabra clave Sin compartir. A esto se le llama Modo Sistema.

Virtual

Si usa la palabra clave 'virtual', indica que esta clase se puede extender y se permiten anulaciones. Si es necesario anular los métodos, las clases deben declararse con la palabra clave virtual.

Resumen

Si declara la clase como 'abstracta', solo contendrá la firma del método y no la implementación real.

Variables de clase

Syntax

[public | private | protected | global] [final] [static] data_type
variable_name [= value]

En la sintaxis anterior:

  • El tipo de datos y el nombre de la variable son obligatorios
  • Los modificadores de acceso y el valor son opcionales.

Example

public static final Integer myvalue;