Apex - 类



什么是类?

类是一个模板或蓝图,从中创建对象。对象是类的实例。这是类的标准定义。Apex类类似于Java类。

例如,InvoiceProcessor类描述了一个包含所有方法和操作的类,这些方法和操作可以对发票执行。如果您创建此类的实例,则它将表示当前上下文中单个发票。

创建类

您可以从开发人员控制台、Force.com Eclipse IDE以及Apex类详细信息页面创建Apex类。

从开发人员控制台

请按照以下步骤从开发人员控制台创建Apex类:

步骤1 - 转到名称并单击开发人员控制台。

步骤2 - 单击文件⇒新建,然后单击Apex类。

Creating Class

从Force.com IDE

请按照以下步骤从Force.com IDE创建类:

步骤1 - 打开Force.com Eclipse IDE

步骤2 - 通过单击文件⇒新建⇒Apex类来创建一个新项目。

步骤3 - 为类提供名称,然后单击确定。

完成后,将创建新类。

从Apex类详细信息页面

请按照以下步骤从Apex类详细信息页面创建类:

步骤1 - 单击名称⇒设置。

步骤2 - 搜索“Apex类”并单击链接。这将打开Apex类详细信息页面。

Creating Apex Class from Detail Page Step1

步骤3 - 单击“新建”,然后为类提供名称,然后单击保存。

Creating Apex Class from Detail Page Step2

Apex类结构

以下是Apex类定义的示例结构。

语法

private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName] {
   // Classs Body
}

此定义结合使用了访问修饰符、共享模式、类名和类体。我们将进一步了解所有这些选项。

示例

以下是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)

如果将类声明为“公共”,则意味着此类可供您的组织和您定义的命名空间访问。通常,大多数Apex类都是使用此关键字定义的。

全局(Global)

如果将类声明为“全局”,则无论您的组织如何,所有apex代码都可以访问它。如果您使用webservice关键字定义了方法,则必须使用global关键字声明包含类。

共享模式

现在让我们讨论不同的共享模式。

With Sharing

这是Salesforce中Apex类的特殊功能。当使用“With Sharing”关键字指定类时,它具有以下含义:当类执行时,它将遵守用户的访问设置和配置文件权限。假设,用户的操作触发了30条记录的记录更新,但用户只能访问20条记录,而10条记录不可访问。然后,如果类正在执行更新记录的操作,则只会更新用户有权访问的20条记录,而其余10条记录将不会更新。这也被称为用户模式。

Without Sharing

即使用户无法访问30条记录中的10条,所有30条记录都将被更新,因为类在系统模式下运行,即它已使用Without Sharing关键字定义。这称为系统模式。

虚拟(Virtual)

如果使用“virtual”关键字,则表示可以扩展此类并允许覆盖。如果需要覆盖方法,则应使用virtual关键字声明类。

抽象(Abstract)

如果将类声明为“抽象”,则它只包含方法的签名,而不包含实际的实现。

类变量

语法

[public | private | protected | global] [final] [static] data_type
variable_name [= value]

在上文的语法中:

  • 变量数据类型和变量名称是必须的
  • 访问修饰符和值是可选的。

示例

public static final Integer myvalue;
广告