Apex - Méthodes

Méthodes de classe

Il existe deux modificateurs pour les méthodes de classe dans Apex: public ou protégé. Le type de retour est obligatoire pour la méthode et si la méthode ne renvoie rien, vous devez mentionner void comme type de retour. De plus, Body est également requis pour la méthode.

Syntax

[public | private | protected | global]
[override]
[static]

return_data_type method_name (input parameters) {
   // Method body goes here
}

Explication de la syntaxe

Les paramètres mentionnés entre crochets sont facultatifs. Cependant, les composants suivants sont essentiels -

  • return_data_type
  • method_name

Modificateurs d'accès pour les méthodes de classe

À l'aide des modificateurs d'accès, vous pouvez spécifier le niveau d'accès pour les méthodes de classe. Par exemple, la méthode publique sera accessible de n'importe où dans la classe et en dehors de la classe. La méthode privée ne sera accessible qu'au sein de la classe. Global sera accessible par toutes les classes Apex et peut être exposé en tant que méthode de service Web accessible par d'autres classes apex.

Example

//Method definition and body
public static Integer getCalculatedValue () {
   
   //do some calculation
   myValue = myValue+10;
   return myValue;
}

Cette méthode a le type de retour Integer et ne prend aucun paramètre.

Une méthode peut avoir des paramètres comme indiqué dans l'exemple suivant -

// Method definition and body, this method takes parameter price which will then be used 
// in method.

public static Integer getCalculatedValueViaPrice (Decimal price) {
   // do some calculation
   myValue = myValue+price;
   return myValue;
}

Constructeurs de classe

Un constructeur est un code qui est appelé lorsqu'un objet est créé à partir du plan de classe. Il porte le même nom que le nom de la classe.

Nous n'avons pas besoin de définir le constructeur pour chaque classe, car par défaut, un constructeur sans argument est appelé. Les constructeurs sont utiles pour l'initialisation de variables ou lorsqu'un processus doit être effectué au moment de l'initialisation de la classe. Par exemple, vous aimerez attribuer des valeurs à certaines variables Integer comme 0 lorsque la classe est appelée.

Example

// Class definition and body
public class MySampleApexClass2 {
   public static Double myValue;   // Class Member variable
   public static String myString;  // Class Member variable

   public MySampleApexClass2 () {
      myValue = 100; //initialized variable when class is called
   }

   public static Double getCalculatedValue () { // Method definition and body
      // do some calculation
      myValue = myValue+10;
      return myValue;
   }

   public static Double getCalculatedValueViaPrice (Decimal price) {
      // Method definition and body
      // do some calculation
      myValue = myValue+price; // Final Price would be 100+100=200.00
      return myValue;
   }
}

Vous pouvez également appeler la méthode de la classe via le constructeur. Cela peut être utile lors de la programmation d'Apex pour le contrôleur de force visuelle. Lorsque l'objet de classe est créé, le constructeur est appelé comme indiqué ci-dessous -

// Class and constructor has been instantiated
MySampleApexClass2 objClass = new MySampleApexClass2();
Double FinalPrice = MySampleApexClass2.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);

Surcharger les constructeurs

Les constructeurs peuvent être surchargés, c'est-à-dire qu'une classe peut avoir plus d'un constructeur défini avec des paramètres différents.

Example

public class MySampleApexClass3 {  // Class definition and body
   public static Double myValue;   // Class Member variable
   public static String myString;  // Class Member variable

   public MySampleApexClass3 () {
      myValue = 100; // initialized variable when class is called
      System.debug('myValue variable with no Overaloading'+myValue);
   }

   public MySampleApexClass3 (Integer newPrice) { // Overloaded constructor
      myValue = newPrice; // initialized variable when class is called
      System.debug('myValue variable with Overaloading'+myValue);
   }

      public static Double getCalculatedValue () { // Method definition and body
      // do some calculation
      myValue = myValue+10;
      return myValue;
   }

   public static Double getCalculatedValueViaPrice (Decimal price) {
      // Method definition and body
      // do some calculation
      myValue = myValue+price;
      return myValue;
   }
}

Vous pouvez exécuter cette classe comme nous l'avons exécutée dans l'exemple précédent.

// Developer Console Code
MySampleApexClass3 objClass = new MySampleApexClass3();
Double FinalPrice = MySampleApexClass3.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);