Классы 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);