- Apex编程教程
- Apex - 首页
- Apex - 概述
- Apex - 环境
- Apex - 示例
- Apex - 数据类型
- Apex - 变量
- Apex - 字符串
- Apex - 数组
- Apex - 常量
- Apex - 决策制定
- Apex - 循环
- Apex - 集合
- Apex - 类
- Apex - 方法
- Apex - 对象
- Apex - 接口
- Apex - DML
- Apex - 数据库方法
- Apex - SOSL
- Apex - SOQL
- Apex - 安全性
- Apex - 调用
- Apex - 触发器
- Apex - 触发器设计模式
- Apex - 监管限制
- Apex - 批处理
- Apex - 调试
- Apex - 测试
- Apex - 部署
- Apex有用资源
- Apex - 快速指南
- Apex - 资源
- Apex - 讨论
Apex - 方法
类方法
Apex中的类方法有两个修饰符——公共或受保护。方法的返回类型是强制性的,如果方法不返回任何内容,则必须将void作为返回类型。此外,方法也需要主体。
语法
[public | private | protected | global]
[override]
[static]
return_data_type method_name (input parameters) {
// Method body goes here
}
语法的解释
方括号中提到的那些参数是可选的。但是,以下组件是必不可少的:
- 返回数据类型
- 方法名
类方法的访问修饰符
使用访问修饰符,您可以指定类方法的访问级别。例如,公共方法可以在类的任何地方以及类的外部访问。私有方法只能在类内部访问。全局方法可被所有Apex类访问,并且可以作为其他Apex类可访问的Web服务方法公开。
示例
//Method definition and body
public static Integer getCalculatedValue () {
//do some calculation
myValue = myValue+10;
return myValue;
}
此方法的返回类型为Integer,并且不带任何参数。
方法可以具有参数,如下例所示:
// Method definition and body, this method takes parameter price which will then be used
// in method.
public static Integer getCalculatedValueViaPrice (Decimal price) {
// do some calculation
myValue = myValue+price;
return myValue;
}
类构造函数
构造函数是在从类蓝图创建对象时调用的代码。它与类名相同。
我们不需要为每个类定义构造函数,因为默认情况下会调用无参数构造函数。构造函数用于初始化变量或在类初始化时需要执行某个过程时。例如,当类被调用时,您希望将某些Integer变量的值赋值为0。
示例
// Class definition and body
public class MySampleApexClass2 {
public static Double myValue; // Class Member variable
public static String myString; // Class Member variable
public MySampleApexClass2 () {
myValue = 100; //initialized variable when class is called
}
public static Double getCalculatedValue () { // Method definition and body
// do some calculation
myValue = myValue+10;
return myValue;
}
public static Double getCalculatedValueViaPrice (Decimal price) {
// Method definition and body
// do some calculation
myValue = myValue+price; // Final Price would be 100+100=200.00
return myValue;
}
}
您也可以通过构造函数调用类的方法。这在为可视化力控制器编程Apex时可能很有用。当创建类对象时,构造函数会被调用,如下所示:
// Class and constructor has been instantiated
MySampleApexClass2 objClass = new MySampleApexClass2();
Double FinalPrice = MySampleApexClass2.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);
重载构造函数
构造函数可以重载,即一个类可以定义多个具有不同参数的构造函数。
示例
public class MySampleApexClass3 { // Class definition and body
public static Double myValue; // Class Member variable
public static String myString; // Class Member variable
public MySampleApexClass3 () {
myValue = 100; // initialized variable when class is called
System.debug('myValue variable with no Overaloading'+myValue);
}
public MySampleApexClass3 (Integer newPrice) { // Overloaded constructor
myValue = newPrice; // initialized variable when class is called
System.debug('myValue variable with Overaloading'+myValue);
}
public static Double getCalculatedValue () { // Method definition and body
// do some calculation
myValue = myValue+10;
return myValue;
}
public static Double getCalculatedValueViaPrice (Decimal price) {
// Method definition and body
// do some calculation
myValue = myValue+price;
return myValue;
}
}
您可以像在前面的示例中执行它一样执行此类。
// Developer Console Code
MySampleApexClass3 objClass = new MySampleApexClass3();
Double FinalPrice = MySampleApexClass3.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);
广告