Apex - Phương pháp
Phương pháp lớp học
Có hai công cụ sửa đổi cho Phương thức lớp trong Apex - Công khai hoặc Được bảo vệ. Kiểu trả về là bắt buộc đối với phương thức và nếu phương thức không trả về bất cứ thứ gì thì bạn phải đề cập đến void làm kiểu trả về. Ngoài ra, Body cũng được yêu cầu cho phương pháp.
Syntax
[public | private | protected | global]
[override]
[static]
return_data_type method_name (input parameters) {
// Method body goes here
}
Giải thích cú pháp
Các tham số được đề cập trong dấu ngoặc vuông là tùy chọn. Tuy nhiên, các thành phần sau là cần thiết:
- return_data_type
- method_name
Access Modifier cho các phương thức lớp
Sử dụng công cụ sửa đổi quyền truy cập, bạn có thể chỉ định mức truy cập cho các phương thức lớp. Ví dụ, phương thức Public sẽ có thể truy cập từ bất kỳ đâu trong lớp và bên ngoài Lớp. Phương thức riêng sẽ chỉ có thể truy cập trong lớp. Toàn cầu sẽ có thể truy cập được bởi tất cả các lớp Apex và có thể được hiển thị dưới dạng phương thức dịch vụ web mà các lớp apex khác có thể truy cập.
Example
//Method definition and body
public static Integer getCalculatedValue () {
//do some calculation
myValue = myValue+10;
return myValue;
}
Phương thức này có kiểu trả về là Số nguyên và không có tham số.
Một phương thức có thể có các tham số như được hiển thị trong ví dụ sau:
// 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;
}
Trình tạo lớp
Hàm tạo là một mã được gọi khi một đối tượng được tạo từ bản thiết kế lớp. Nó có cùng tên với tên lớp.
Chúng ta không cần xác định hàm tạo cho mọi lớp, vì theo mặc định một hàm tạo không đối số được gọi. Các hàm tạo hữu ích cho việc khởi tạo các biến hoặc khi một quá trình được thực hiện tại thời điểm khởi tạo lớp. Ví dụ: bạn sẽ muốn gán giá trị cho một số biến Integer là 0 khi lớp được gọi.
Example
// 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;
}
}
Bạn cũng có thể gọi phương thức của lớp thông qua hàm tạo. Điều này có thể hữu ích khi lập trình Apex cho bộ điều khiển lực trực quan. Khi đối tượng lớp được tạo, thì hàm tạo được gọi như hình dưới đây:
// Class and constructor has been instantiated
MySampleApexClass2 objClass = new MySampleApexClass2();
Double FinalPrice = MySampleApexClass2.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);
Quá tải cấu tạo
Các hàm tạo có thể được nạp chồng, tức là một lớp có thể có nhiều hơn một hàm tạo được xác định với các tham số khác nhau.
Example
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;
}
}
Bạn có thể thực thi lớp này như chúng ta đã thực thi trong ví dụ trước.
// Developer Console Code
MySampleApexClass3 objClass = new MySampleApexClass3();
Double FinalPrice = MySampleApexClass3.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);