课程章节介绍
同学,我们来看一下这一页的重点:Apex的类和Java的类虽然长得像,但其实有不少关键的差别,你一定要小心。
首先,Apex里可以有内部类和内部接口,但是注意——只能有一层深。什么意思呢?就是你不能像套娃一样,类里面有类,里面的类再套一层类,Apex不允许这样做。
第二,静态方法和静态变量只能放在最外层的顶级类里。内部类里是不能声明静态成员的。
然后,访问修饰符要注意。在Java里,你不写访问修饰符,默认是包级别的访问权限,对吧?但在Apex里,如果你什么都不写,默认是private。而且Apex的public含义和Java不一样。在Apex中,public只表示在同一个应用程序或者命名空间内可以访问,它并不是完全公开的。真正相当于Java里public的是global,只有加了这个,才能让代码在任何地方被访问到。
还有,在Apex里,所有的方法和类默认都是final的,也就是说你不能继承和重写。如果你想让一个类可以被继承,或者让一个方法可以被覆盖,一定要用virtual关键字来显式声明。
关于异常,Apex要求所有的自定义异常类必须扩展自基础的Exception类,而且类名必须以“Exception”结尾,否则编译不通过。
最后一点,你可以在触发器和匿名执行块里面定义类和接口,但这种情况下,这些类和接口只能是local的,作用范围仅限于那个块内。
记住这些差异,对你写好Apex代码会很关键。我们继续看下一页。
关键词
Apex
Salesforce
Developer Guide