Thành viên lớp tĩnh X++

Lưu ý

Các nhóm quan tâm cộng đồng hiện đã chuyển từ Yammer sang Microsoft Viva Engage. Để tham gia cộng đồng Viva Engage và tham gia vào các cuộc thảo luận mới nhất, hãy điền vào biểu mẫu Tạo nhiệm vụ truy nhập vào biểu mẫu Tài chính và Vận hành Viva Engage Cộng đồng và chọn cộng đồng bạn muốn tham gia.

Bài viết này mô tả các thành viên lớp tĩnh trong X++. Nói chung, sử dụng phương pháp tĩnh cho những trường hợp này:

  • Phương thức không cần truy nhập các biến phần tử được khai báo trong lớp.
  • Phương pháp này không cần gọi bất kỳ trường hợp nào (không tĩnh) phương pháp của lớp.

Khai báo thành viên lớp tĩnh bằng cách sử dụng từ khóa tĩnh. Từ khóa tĩnh hướng dẫn hệ thống chỉ tạo một thể hiện của phương pháp, bất kể số lần xuất hiện của lớp. Sử dụng phiên bản này trong suốt phiên làm việc của bạn.

Phương pháp tĩnh

Phần này mô tả một kịch bản trong đó một loại khóa phần mềm được sử dụng để giúp ngăn chặn vi phạm bản quyền. Mỗi phiên bản của khóa phần mềm có thể có giá trị duy nhất của riêng mình. Vì tất cả các khóa phần mềm phải phù hợp với các quy tắc thiết kế khóa phần mềm, logic kiểm tra sự phù hợp của khóa phần mềm là giống nhau đối với tất cả các khóa phần mềm. Vì vậy, phương pháp có chứa lô-gic hợp lệ hợp lệ nên tĩnh.

Dưới đây là ví dụ về một phương pháp được khai báo bằng cách sử dụng từ khóa tĩnh.

public class SoftwareKey
{
    static public boolean validateSoftwareKey(str _softwareKeyString)
    {
        // Your code here.
        return false;
    }
}

Trong ví dụ sau đây, bạn không cần phải xây dựng một phiên bản của lớp SoftwareKey trước khi bạn gọi một phương pháp tĩnh trên lớp. Khi bạn muốn gọi phương pháp validateSoftwareKey tĩnh, cú pháp bắt đầu với tên của lớp có chứa phương pháp. Một cặp dấu hai chấm (::) tên lớp với tên phương thức tĩnh.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Trường tĩnh

Trường tĩnh là các biến mà bạn khai báo bằng cách sử dụng từ khóa tĩnh. Về khái niệm, họ áp dụng cho lớp học, không phải trường hợp của lớp học.

Hàm tạo tĩnh

Hàm tạo tĩnh luôn chạy trước khi thực hiện bất kỳ cuộc gọi tĩnh hoặc phiên bản nào cho lớp. Việc thực hiện hàm tạo tĩnh tương đối với phiên làm việc của người dùng. Hàm tạo tĩnh sử dụng cú pháp sau đây.

static void TypeNew()

Bạn không bao giờ rõ ràng gọi hàm tạo tĩnh. Trình biên dịch tạo ra mã để đảm bảo rằng các nhà xây dựng được gọi là chính xác một thời gian trước khi bất kỳ phương pháp khác trên lớp. Sử dụng hàm tạo tĩnh để khởi tạo bất kỳ dữ liệu tĩnh nào hoặc thực hiện một hành động cụ thể chỉ được thực hiện một lần. Bạn không thể cung cấp tham số cho hàm tạo tĩnh và bạn phải đánh dấu nó là tĩnh.

Ví dụ về mã sau đây cho thấy cách tạo phiên bản singleton bằng cách sử dụng hàm tạo tĩnh.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

    static void TypeNew()
    {
        instance = new Singleton();
    }

    public static Singleton Instance()
    {
        return Singleton::instance;
    }
}

Singleton đảm bảo rằng lớp chỉ có một phiên bản. Ví dụ sau đây cho thấy cách tạo đối tượng singleton.

Singleton i = Singleton::Instance();

Phương pháp tĩnh

Các phương pháp tĩnh, còn được gọi là phương pháp lớp, thuộc về một lớp và được tạo bằng cách sử dụng từ khóa tĩnh. Bạn không phải tạo đối tượng trước khi sử dụng phương pháp tĩnh. Sử dụng các phương pháp tĩnh để làm việc với dữ liệu được lưu trữ trong bảng. Bạn không thể sử dụng các biến phần tử trong một phương pháp tĩnh. Sử dụng cú pháp sau đây để gọi các phương pháp tĩnh.

ClassName::methodName();

Phương pháp tĩnh và phiên bản

Từ khóa người truy cập trên phương pháp không bao giờ hạn chế cuộc gọi giữa hai phương pháp trong cùng một lớp, bất kể phương pháp nào là tĩnh hoặc không tĩnh. Trong một phương pháp tĩnh, các cuộc gọi đến phương pháp constructor mới là hợp lệ ngay cả khi phương pháp hàm tạo mới được trang trí với các modifier tư nhân. Cú pháp cho các cuộc gọi này yêu cầu bạn sử dụng từ khóa mới. Mã trong một phương pháp tĩnh phải xây dựng một đối tượng thể hiện của lớp học riêng của mình trước khi nó có thể gọi bất kỳ phương pháp thể hiện trên lớp.