Учебники

Апекс — Методы

В Apex есть два модификатора для методов класса — Public или Protected. Возвращаемый тип является обязательным для метода, и если метод не возвращает ничего, вы должны указать void в качестве возвращаемого типа. Кроме того, тело также требуется для метода.

Синтаксис

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

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

Объяснение синтаксиса

Эти параметры, указанные в квадратных скобках, являются необязательными. Тем не менее, следующие компоненты имеют важное значение —

  • return_data_type
  • method_name

Модификаторы доступа для методов класса

Используя модификаторы доступа, вы можете указать уровень доступа для методов класса. Например, метод Public будет доступен из любого места в классе и за его пределами. Приватный метод будет доступен только внутри класса. Global будет доступен для всех классов Apex и может быть представлен как метод веб-службы, доступный для других классов Apex.

пример

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

Этот метод имеет тип возвращаемого значения как Integer и не принимает параметров.

Метод может иметь параметры, как показано в следующем примере:

// 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;
}

Конструкторы классов

Конструктор — это код, который вызывается при создании объекта из светокопии класса. Имя совпадает с именем класса.

Нам не нужно определять конструктор для каждого класса, так как по умолчанию вызывается конструктор без аргументов. Конструкторы полезны для инициализации переменных или когда процесс должен быть выполнен во время инициализации класса. Например, вы хотите присвоить значения определенным целочисленным переменным как 0, когда класс вызывается.

пример

// 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;
   }
}

Вы можете также вызвать метод класса через конструктор. Это может быть полезно при программировании Apex для контроллера визуальной силы. Когда создается объект класса, вызывается конструктор, как показано ниже —

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

Перегрузка Конструкторов

Конструкторы могут быть перегружены, т. Е. Класс может иметь более одного конструктора, определенного с разными параметрами.

пример

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;
   }
}

Вы можете выполнить этот класс, как мы выполнили его в предыдущем примере.