> Apex中文手册 > Apex - 类方法

类方法

在Apex中有两个类方法的修饰符:Public或Protected。 返回类型是必须的方法,如果方法不返回任何东西,那么你必须提到void作为返回类型。 方法需要body。


语法:

[public | private | protected | global] 
[override] 
[static] 
return_data_type method_name (input parameters) 
{
// Method body goes here
}


语法说明:

方括号中提到的那些参数是可选的。 但是,需要以下组件:

  • return_data_type
  • method_name


类方法访问修饰符:

使用访问修饰符,可以为类方法指定访问级别。 例如,公共方法将可以从类中的任何地方和类之外访问。 私有方法只能在类中访问。 Global将被所有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;
}


类构造函数

构造函数是在从类蓝图创建对象时调用的代码。 它与类名称具有相同的名称。


我们不需要为每个类定义构造函数,因为默认情况下调用无参数构造函数。 当我们想要在类初始化时完成一些变量或过程的初始化时,构造器是有用的。 例如:当调用类时,您想要将某些整数变量的值赋值为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);

上一篇:
下一篇: