Apex - Classi

Cos'è una classe?

Una classe è un modello o un progetto da cui vengono creati gli oggetti. Un oggetto è un'istanza di una classe. Questa è la definizione standard di Classe. Le classi Apex sono simili alle classi Java.

Per esempio, InvoiceProcessorclass descrive la classe che ha tutti i metodi e le azioni che possono essere eseguite sulla fattura. Se crei un'istanza di questa classe, rappresenterà la singola fattura attualmente nel contesto.

Creazione di classi

Puoi creare una classe in Apex dalla Developer Console, dall'IDE di Force.com Eclipse e anche dalla pagina dei dettagli della classe Apex.

Dalla Developer Console

Segui questi passaggi per creare una classe Apex dalla Console per gli sviluppatori:

Step 1 - Vai su Nome e fai clic su Console per gli sviluppatori.

Step 2 - Fare clic su File ⇒ Nuovo e quindi fare clic sulla classe Apex.

Da Force.com IDE

Segui questi passaggi per creare una classe dall'IDE Force.com:

Step 1 - Apri Force.com Eclipse IDE

Step 2 - Crea un nuovo progetto facendo clic su File ⇒ Nuovo ⇒ Classe Apex.

Step 3 - Fornire il nome per la classe e fare clic su OK.

Fatto ciò, verrà creata la nuova classe.

Dalla pagina dei dettagli della classe Apex

Segui questi passaggi per creare una classe dalla pagina dei dettagli della classe Apex:

Step 1 - Fare clic su Nome ⇒ Impostazioni.

Step 2- Cerca "Classe Apex" e fai clic sul link. Si aprirà la pagina dei dettagli della classe Apex.

Step 3 - Fare clic su "Nuovo", quindi fornire il nome della classe e quindi fare clic su Salva.

Struttura della classe Apex

Di seguito è riportata la struttura di esempio per la definizione della classe Apex.

Syntax

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

Questa definizione utilizza una combinazione di modificatori di accesso, modalità di condivisione, nome della classe e corpo della classe. Esamineremo ulteriormente tutte queste opzioni.

Example

Di seguito è riportata una struttura di esempio per la definizione della classe 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;
   }
}

Modificatori di accesso

Privato

Se dichiari il modificatore di accesso come "Privato", questa classe sarà conosciuta solo localmente e non potrai accedere a questa classe al di fuori di quel particolare pezzo. Per impostazione predefinita, le classi hanno questo modificatore.

Pubblico

Se dichiari la classe come "Pubblica", ciò implica che questa classe è accessibile alla tua organizzazione e al tuo spazio dei nomi definito. Normalmente, la maggior parte delle classi Apex sono definite con questa parola chiave.

Globale

Se dichiari la classe come "globale", questa sarà accessibile da tutti i codici Apex indipendentemente dalla tua organizzazione. Se hai un metodo definito con la parola chiave del servizio web, devi dichiarare la classe contenitore con la parola chiave globale.

Modalità di condivisione

Parliamo ora delle diverse modalità di condivisione.

Con la condivisione

Questa è una caratteristica speciale delle classi Apex in Salesforce. Quando una classe viene specificata con la parola chiave "Con condivisione", ha le seguenti implicazioni: Quando la classe verrà eseguita, rispetterà le impostazioni di accesso dell'utente e l'autorizzazione del profilo. Supponiamo che l'azione dell'utente abbia attivato l'aggiornamento del record per 30 record, ma che l'utente abbia accesso solo a 20 record e 10 record non siano accessibili. Quindi, se la classe sta eseguendo l'azione per aggiornare i record, verranno aggiornati solo 20 record a cui l'utente ha accesso e gli altri 10 record non verranno aggiornati. Questa è anche chiamata modalità utente.

Senza condivisione

Anche se l'Utente non ha accesso a 10 record su 30, tutti i 30 record verranno aggiornati mentre la Classe è in esecuzione in modalità Sistema, cioè è stata definita con la parola chiave Senza Condivisione. Questa è chiamata modalità di sistema.

Virtuale

Se utilizzi la parola chiave "virtuale", significa che questa classe può essere estesa e che sono consentiti gli override. Se i metodi devono essere sovrascritti, le classi devono essere dichiarate con la parola chiave virtual.

Astratto

Se dichiari la classe come "astratta", conterrà solo la firma del metodo e non l'effettiva implementazione.

Variabili di classe

Syntax

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

Nella sintassi sopra -

  • Il tipo di dati variabile e il nome della variabile sono obbligatori
  • I modificatori di accesso e il valore sono facoltativi.

Example

public static final Integer myvalue;