Классы Apex и классы Java работают очень похоже, но есть некоторые различия.

Модификаторы доступа в Apex

  • Модификатор доступа по умолчанию в Apex — private, а в Java — по умолчанию.
  • public в Java отличается от public в apex. public в Apex означает, что метод или переменная может использоваться любым Apex в этом приложении или пространстве имен. если вы хотите сделать что-то общедоступным, как в Java, вам нужно использовать global.
  • Если вы объявляете метод или переменную как глобальную, вы также должны объявить класс, содержащий ее, как глобальную.

Статика в Apex

  • Классы Apex не могут быть статичными.
  • Статические методы и переменные могут быть объявлены только в определении класса верхнего уровня, но не во внутреннем классе. Внутренний класс ведет себя как статический внутренний класс Java, но не требует ключевого слова static.
  • К статической переменной класса или статическому методу нельзя получить доступ через экземпляр этого класса.

Наследование в Apex

Методы и классы являются final по умолчанию. Модификатор определения виртуальное позволяет расширение и переопределение.

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

public class ClassName{ 
     public override void write() { 
         System.debug('Writing some text using the yellow marker.'); } }

Методы интерфейса не имеют модификаторов — они всегда глобальны.

Исключение в Apex

new MyException(); new MyException('This is bad'); new MyException(e); new MyException('This is bad', e);