Apex - Classes

Qu'est-ce qu'une classe?

Une classe est un modèle ou un plan à partir duquel des objets sont créés. Un objet est une instance d'une classe. C'est la définition standard de la classe. Les classes Apex sont similaires aux classes Java.

Par exemple, InvoiceProcessorclass décrit la classe qui contient toutes les méthodes et actions pouvant être effectuées sur la facture. Si vous créez une instance de cette classe, elle représentera alors la facture unique actuellement en contexte.

Créer des classes

Vous pouvez créer une classe dans Apex à partir de la Developer Console, de l'IDE Force.com Eclipse et de la page de détails de la classe Apex.

Depuis la Developer Console

Suivez ces étapes pour créer une classe Apex à partir de la Developer Console -

Step 1 - Allez dans Nom et cliquez sur la Developer Console.

Step 2 - Cliquez sur Fichier ⇒ Nouveau puis sur la classe Apex.

Depuis Force.com IDE

Suivez ces étapes pour créer une classe à partir de Force.com IDE -

Step 1 - Ouvrez l'IDE Force.com Eclipse

Step 2 - Créez un nouveau projet en cliquant sur Fichier ⇒ Nouveau ⇒ Classe Apex.

Step 3 - Fournissez le nom de la classe et cliquez sur OK.

Une fois cela fait, la nouvelle classe sera créée.

À partir de la page de détails de la classe Apex

Suivez ces étapes pour créer une classe à partir de la page de détails de la classe Apex -

Step 1 - Cliquez sur Nom ⇒ Configuration.

Step 2- Recherchez «Apex Class» et cliquez sur le lien. Cela ouvrira la page des détails de la classe Apex.

Step 3 - Cliquez sur «Nouveau», puis indiquez le nom de la classe, puis cliquez sur Enregistrer.

Structure de classe Apex

Vous trouverez ci-dessous un exemple de structure pour la définition de classe Apex.

Syntax

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

Cette définition utilise une combinaison de modificateurs d'accès, de modes de partage, de nom de classe et de corps de classe. Nous examinerons toutes ces options plus en détail.

Example

Voici un exemple de structure pour la définition de 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;
   }
}

Modificateurs d'accès

Privé

Si vous déclarez le modificateur d'accès comme «Privé», alors cette classe ne sera connue que localement et vous ne pourrez pas accéder à cette classe en dehors de cette pièce particulière. Par défaut, les classes ont ce modificateur.

Publique

Si vous déclarez la classe comme «Public», cela implique que cette classe est accessible à votre organisation et à votre espace de noms défini. Normalement, la plupart des classes Apex sont définies avec ce mot clé.

Global

Si vous déclarez la classe comme «globale», elle sera accessible par tous les codes apex, quelle que soit votre organisation. Si vous avez défini une méthode avec un mot-clé de service Web, vous devez déclarer la classe contenant avec un mot-clé global.

Modes de partage

Parlons maintenant des différents modes de partage.

Avec partage

Il s'agit d'une fonctionnalité spéciale des classes Apex dans Salesforce. Lorsqu'une classe est spécifiée avec le mot-clé «Avec partage», les implications sont les suivantes: Lorsque la classe sera exécutée, elle respectera les paramètres d'accès et l'autorisation de profil de l'utilisateur. Supposons que l'action de l'utilisateur ait déclenché la mise à jour de l'enregistrement pour 30 enregistrements, mais que l'utilisateur n'a accès qu'à 20 enregistrements et que 10 enregistrements ne sont pas accessibles. Ensuite, si la classe exécute l'action pour mettre à jour les enregistrements, seuls 20 enregistrements seront mis à jour auxquels l'utilisateur a accès et le reste des 10 enregistrements ne sera pas mis à jour. Ceci est également appelé le mode utilisateur.

Sans partage

Même si l'Utilisateur n'a pas accès à 10 enregistrements sur 30, tous les 30 enregistrements seront mis à jour car la Classe s'exécute en mode Système, c'est-à-dire qu'elle a été définie avec le mot clé Sans Partage. C'est ce qu'on appelle le mode système.

Virtuel

Si vous utilisez le mot-clé 'virtual', cela indique que cette classe peut être étendue et que les remplacements sont autorisés. Si les méthodes doivent être remplacées, les classes doivent être déclarées avec le mot clé virtual.

Abstrait

Si vous déclarez la classe comme «abstraite», alors elle ne contiendra que la signature de la méthode et non l'implémentation réelle.

Variables de classe

Syntax

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

Dans la syntaxe ci-dessus -

  • Le type de données et le nom de la variable sont obligatoires
  • Les modificateurs d'accès et la valeur sont facultatifs.

Example

public static final Integer myvalue;