Classes
什么是class?
类是创建对象的模板或蓝图。 对象是类的实例。 这是Class的标准定义。 Apex类与Java类类似。
例如, InvoiceProcessor类描述了具有可以在Invoice上执行的所有方法和操作的类。 如果您创建此类的实例,则它将表示当前在上下文中的单个发票。
创建类
您可以从Developer Console,Force.com Eclipse IDE和Apex Class详细信息页面在Apex中创建类。
从Developer Console
按照以下步骤从Developer Console创建Apex类 -
Step 1 - 转到Name并单击Developer Console。
Step 2 - 单击文件⇒新建,然后单击Apex类。
来自Force.com IDE
按照以下步骤从Force.com IDE创建一个类 -
Step 1 - 打开Force.com Eclipse IDE
Step 2 - 单击File⇒New⇒ApexClass创建一个新项目。
Step 3 - 提供类的名称,然后单击“确定”。
完成后,将创建新类。
来自Apex Class Detail Page
按照以下步骤从Apex类详细信息页面创建一个类 -
Step 1 - 单击名称⇒设置。
Step 2 - 搜索'Apex Class'并单击链接。 它将打开Apex Class详细信息页面。
Step 3 - 单击“新建”,然后提供课程名称,然后单击“保存”。
Apex类结构
下面是Apex类定义的示例结构。
Syntax
private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName] {
// Classs Body
}
此定义使用访问修饰符,共享模式,类名和类主体的组合。 我们将进一步研究所有这些选项。
Example
以下是Apex类定义的示例结构 -
public class MySampleApexClass { //Class definition and body
public static Integer myValue = 0; //Class Member variable
public static String myString = ''; //Class Member variable
public static Integer getCalculatedValue () {
// Method definition and body
// do some calculation
myValue = myValue+10;
return myValue;
}
}
访问修饰符
Private
如果您将访问修饰符声明为“私有”,则此类将仅在本地知道,并且您无法在该特定片段之外访问此类。 默认情况下,类具有此修饰符。
Public
如果将类声明为“Public”,则表示您的组织和定义的命名空间可以访问此类。 通常,大多数Apex类都是使用此关键字定义的。
Global
如果您将该类声明为“全局”,那么无论您的组织如何,所有顶级代码都可以访问该类。 如果您使用Web服务关键字定义了方法,则必须使用global关键字声明包含类。
分享模式
现在让我们讨论不同的分享方式。
与共享
这是Salesforce中Apex类的一个特殊功能。 当使用“With Sharing”关键字指定类时,它具有以下含义:当类将被执行时,它将尊重用户的访问设置和配置文件权限。 假设,用户的操作已触发30条记录的记录更新,但用户只能访问20条记录,并且无法访问10条记录。 然后,如果类正在执行更新记录的操作,则只会更新20条记录,用户可以访问该记录,并且不会更新其余10条记录。 这也称为用户模式。
没有分享
即使用户无法访问30个记录中的10个记录,所有30个记录也将在系统模式下运行时更新,即已使用“无共享”关键字定义。 这称为系统模式。
Virtual
如果使用'virtual'关键字,则表示可以扩展此类,并允许覆盖。 如果需要重写方法,则应使用virtual关键字声明类。
Abstract
如果将类声明为“abstract”,那么它将只包含方法的签名而不包含实际的实现。
类变量
Syntax
[public | private | protected | global] [final] [static] data_type
variable_name [= value]
在上面的语法中 -
- 变量数据类型和变量名称是必需的
- 访问修饰符和值是可选的。
Example
public static final Integer myvalue;