类方法
在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);