Apex - 类

什么是类?

类是创建对象的模板或蓝图。 对象是类的实例。 这是类的标准定义。 Apex 类与 Java 类类似。

例如,InvoiceProcessor类描述了具有可以在账单上执行的所有方法和操作的类。 如果您创建此类的实例,那么它将代表当前上下文中的单个账单。

创建类

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

来自开发者控制台

按照以下步骤从开发者控制台创建 Apex 类 −

步骤 1 − 转到"名称"并单击"开发者控制台"。

步骤 2 − 单击 File ⇒ New,然后单击 Apex 类。

创建类

来自 Force.com IDE

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

步骤 1 − 打开 Force.com Eclipse IDE

步骤 2 − 单击 File ⇒ New ⇒ Apex 类创建一个新项目。

步骤 3 − 提供类的名称,然后单击"确定"。

完成后,将创建新类。

来自 Apex 类详细信息页面

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

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

步骤 2 − 搜索"Apex Class"并单击链接。 它将打开 Apex 类详细信息 页。

从详细信息页面第 1 步创建 Apex 类

步骤 3 − 单击"新建",然后提供类名称,然后单击"保存"。

从详细信息页面第 2 步创建 Apex 类

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 () {
   // 方法定义和主体
   // 做一些计算
      myValue = myValue+10;
      return myValue;
   }
}

访问修饰符

Private

如果您将访问修饰符声明为"Private",则此类仅在本地可见,并且您无法在该特定部分之外访问此类。 默认情况下,类具有此修饰符。

Public

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

Global

如果您将该类声明为"全局",那么无论您的组织如何,所有 apex 代码都可以访问该类。 如果您有使用 Web 服务关键字定义的方法,则必须使用 global 关键字声明包含类。

共享模式

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

WithSharing(共享)

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

Without Sharing(不共享)

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

Virtual(虚拟)

如果使用"virtual"关键字,则表明该类可以扩展并且允许覆盖。 如果需要重写方法,则应使用 virtual 关键字声明类。

Abstract(抽象)

如果您将类声明为"抽象",那么它将只包含方法的签名,而不包含实际的实现。

类变量

语法

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

在上面的语法中 −

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

示例

public static final Integer myvalue;