Anggota kelas statis X++

Note

Grup minat komunitas sekarang telah berpindah dari Yammer ke Microsoft Viva Engage. Untuk bergabung dengan komunitas Viva Engage dan mengambil bagian dalam diskusi terbaru, isi Request akses ke Komunitas Viva Engage Keuangan dan Operasi dan pilih komunitas yang ingin Anda gabungkan.

Artikel ini menjelaskan anggota kelas statis di X++. Secara umum, gunakan metode statis untuk kasus-kasus ini:

  • Metode ini tidak perlu mengakses variabel anggota yang dideklarasikan di kelas .
  • Metode ini tidak perlu memanggil metode instans apa pun (non-statis) kelas.

Deklarasikan anggota kelas statis dengan menggunakan kata kunci statis . Kata kunci statis menginstruksikan sistem untuk membuat hanya satu instans metode, terlepas dari jumlah instans kelas. Gunakan instans yang satu ini di seluruh sesi Anda.

Metode statis

Bagian ini menjelaskan skenario di mana jenis kunci perangkat lunak digunakan untuk membantu mencegah pembajakan. Setiap instans kunci perangkat lunak dapat memiliki nilai uniknya sendiri. Karena semua kunci perangkat lunak harus sesuai dengan aturan desain kunci perangkat lunak, logika yang menguji kesamaan kunci perangkat lunak sama untuk semua kunci perangkat lunak. Oleh karena itu, metode yang berisi logika validasi kesamaan harus statis.

Berikut adalah contoh metode yang dideklarasikan dengan menggunakan kata kunci statis .

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

Dalam contoh berikut, Anda tidak perlu membuat instans kelas SoftwareKey sebelum memanggil metode statis di kelas . Saat Anda ingin memanggil metode validateSoftwareKey statis, sintaks dimulai dengan nama kelas yang berisi metode . Sepasang titik dua (::) menghubungkan nama kelas ke nama metode statis.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Bidang statis

Bidang statis adalah variabel yang Anda deklarasikan dengan menggunakan kata kunci statis . Secara konseptual, mereka berlaku untuk kelas, bukan ke instans kelas.

Konstruktor statis

Konstruktor statis selalu berjalan sebelum panggilan statis atau instans dilakukan ke kelas . Eksekusi konstruktor statis relatif terhadap sesi pengguna. Konstruktor statis menggunakan sintaks berikut.

static void TypeNew()

Anda tidak pernah secara eksplisit memanggil konstruktor statis. Pengkompilasi menghasilkan kode untuk memastikan bahwa konstruktor dipanggil tepat satu kali sebelum metode lain di kelas. Gunakan konstruktor statis untuk menginisialisasi data statis apa pun atau melakukan tindakan tertentu yang harus dilakukan hanya satu kali. Anda tidak dapat memberikan parameter untuk konstruktor statis, dan Anda harus menandainya sebagai statis.

Contoh kode berikut menunjukkan cara membuat instans singleton dengan menggunakan konstruktor statis.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

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

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

Singleton menjamin bahwa kelas hanya memiliki satu instans. Contoh berikut menunjukkan cara membuat instans singleton.

Singleton i = Singleton::Instance();

Metode statis

Metode statis, yang juga dikenal sebagai metode kelas, milik kelas dan dibuat dengan menggunakan kata kunci statis. Anda tidak perlu membuat instans objek sebelum menggunakan metode statis. Gunakan metode statis untuk bekerja dengan data yang disimpan dalam tabel. Anda tidak dapat menggunakan variabel anggota dalam metode statis. Gunakan sintaks berikut untuk memanggil metode statis.

ClassName::methodName();

Metode statis dan instans

Kata kunci aksesor pada metode tidak pernah membatasi panggilan antara dua metode yang berada di kelas yang sama, terlepas dari metode mana yang statis atau tidak statis. Dalam metode statis, panggilan ke metode konstruktor baru valid bahkan jika metode konstruktor baru dihiasi dengan pengubah privat . Sintaks untuk panggilan ini mengharuskan Anda menggunakan kata kunci baru . Kode dalam metode statis harus membangun objek instans dari kelasnya sendiri sebelum dapat memanggil metode instans apa pun di kelas .