All Products
Search
Document Center

OpenSearch:Kelas dan objek

Last Updated:Jun 26, 2025

Topik ini menjelaskan kelas dan objek yang didukung oleh Cava serta fitur terkait.

Ikhtisar

Cava memungkinkan Anda mendefinisikan kelas dan membuat objek. Bahasa pemrograman ini mendukung berbagai konsep dalam pemrograman berorientasi objek, seperti enkapsulasi, abstraksi, kelas, objek, instance, dan metode.

Dalam hal pemrograman berorientasi objek, sintaks Cava mirip dengan Java atau C#.

Contoh

Dalam kode sampel berikut, sebuah kelas bernama Example didefinisikan, sebuah objek bernama example dibuat menggunakan fungsi penanganan, dan variabel anggota bernama PI dari objek tersebut diakses.

class Example {  // <==
    double PI;
    Example() {
        PI = 3.1415926;
    }
    static int main() {
        Example example = new Example(); 
        double a = example.PI; // Nilai a adalah 3.1415926.
        return 0;
    }
}

Fitur

Definisikan sebuah kelas

Untuk mendefinisikan sebuah kelas, gunakan kata kunci class. Pendefinisian sebuah kelas melibatkan operasi berikut:

  • Definisikan Variabel Anggota: Variabel anggota membawa data dari objek yang relevan.

  • Definisikan Konstruktor: Konstruktor digunakan untuk menginisialisasi objek yang telah dibuat.

  • Definisikan Fungsi Anggota: Fungsi anggota adalah metode untuk mengakses objek yang relevan.

  • Definisikan Fungsi Kelas: Fungsi kelas dibagi oleh semua objek dan dapat diakses menggunakan nama kelas.

class Example {        // Definisikan sebuah kelas bernama Example.
    public double PI;  // Definisikan variabel anggota.
    Example() {        // Definisikan konstruktor.
        PI = 3.1415926;
    }
    double getPI() {   // Definisikan fungsi anggota.
        return PI;
    }
    static int main() {
        Example example = new Example();
        double a = example.getPI(); // Nilai a adalah 3.1415926.
        return 0;
    }
}

Buat sebuah objek

Setelah mendefinisikan sebuah kelas, Anda dapat menggunakannya untuk membuat objek. Pembuatan objek melibatkan operasi berikut:

  • Deklarasi: Deklarasikan sebuah variabel dan tentukan kelas dari variabel tersebut.

  • Instansiasi: Gunakan kata kunci new untuk membuat instance dari sebuah objek.

  • Inisialisasi: Tentukan konstruktor di sebelah kata kunci new. Konstruktor digunakan untuk menginisialisasi objek.

Kode sampel berikut memberikan contoh cara membuat objek. Baris pertama dari fungsi main digunakan untuk membuat objek dari kelas Example dan menyimpan objek tersebut dalam variabel example. Setelah objek dibuat, Anda dapat menggunakan variabel example untuk mengakses data anggota dari objek.

class Example {
    double PI;
    Example() {
        PI = 3.1415926;
    }
    static int main() {
        Example example = new Example(); 
        return 0;
    }
}

Definisikan variabel anggota

Kode sampel berikut memberikan contoh cara mendefinisikan variabel anggota bernama PI bertipe DOUBLE:

class Example {
    double PI; // <==
    Example() {
        PI = 3.1415926;
    }
}
Catatan

Saat mendefinisikan variabel anggota, Anda tidak dapat menentukan nilai awal untuk variabel tersebut. Anda harus menggunakan konstruktor untuk menginisialisasi variabel anggota.

class Example {
    double PI = 3.1415926; // Saat Anda mendefinisikan variabel anggota, Anda tidak dapat menginisialisasi variabel tersebut.
}

Definisikan konstruktor

Konstruktor adalah fungsi anggota khusus dalam Cava. Batasan berikut diberlakukan pada konstruktor:

  • Nama konstruktor harus sama dengan nama kelas.

  • Konstruktor tidak memiliki nilai balik. Anda tidak dapat menentukan parameter keluaran.

Konstruktor dipanggil secara otomatis setelah objek yang relevan dibuat. Perintah dalam konstruktor dijalankan untuk menginisialisasi objek. Cava memungkinkan Anda mendefinisikan beberapa konstruktor. Sintaks yang ditentukan dari perintah new menentukan konstruktor mana yang digunakan untuk membuat dan menginisialisasi objek. Kode sampel berikut memberikan contoh cara membuat dua objek menggunakan fungsi penanganan main. Objek pertama diinisialisasi menggunakan Konstruktor A. Setelah inisialisasi, nilai dari variabel anggota PI adalah 3.1415926. Objek kedua diinisialisasi menggunakan Konstruktor B. Setelah inisialisasi, nilai dari variabel anggota PI adalah 3.14.

class Example {
    public double PI;
    Example() { // <== A
        this.PI = 3.1415926;
    }
    Example(double customPI) { // <== B
        this.PI = customPI;
    }
    double getPI() {
        return PI;
    }
    static int main() {
        Example example1 = new Example(); // Gunakan Konstruktor A untuk menginisialisasi objek yang dibuat.
        double a = example1.getPI();
        Example example2 = new Example(3.14); // Gunakan Konstruktor B untuk menginisialisasi objek yang dibuat.
        double b = example2.getPI()
        return 0;
    }
}
Catatan

Konstruktor mendukung overloading fungsi.

Definisikan fungsi anggota

Fungsi anggota mengenkapsulasi operasi yang terkait dengan variabel anggota. Konsumen dari sebuah objek dapat memanggil fungsi anggota untuk membaca dan memodifikasi variabel anggota yang relevan. Variabel anggota yang didefinisikan dalam fungsi anggota dapat diakses menggunakan fungsi anggota. Jika variabel dalam cakupan fungsi anggota memiliki nama yang sama dengan variabel anggota, variabel dalam cakupan tersebut akan didahulukan saat Anda mengakses variabel dengan menentukan nama variabel. Dalam hal ini, Anda dapat menambahkan awalan this ke nama variabel untuk mengakses variabel anggota.

class Example {
    public double PI;
    Example() {
        this.PI = 3.1415926;
    }
    void getPI() {
        return PI;
    }
    static int main() {
        Example example = new Example();
        double a = example.getPI();
        return 0;
    }
}
Catatan

Fungsi anggota mendukung overloading fungsi. Anda dapat mendefinisikan beberapa fungsi anggota dengan nama yang sama dalam sebuah kelas. Kompiler memilih fungsi optimal berdasarkan tipe dan jumlah parameter input yang ditentukan dalam kode.

Definisikan fungsi kelas

Fungsi kelas milik kelas yang relevan dan dibagikan oleh semua anggota data kelas tersebut. Anda dapat menggunakan kata kunci static untuk mendefinisikan fungsi kelas untuk sebuah kelas. Kemudian, Anda dapat menggunakan kelas untuk mengakses fungsi kelas tanpa perlu membuat objek. Namun, Anda harus menggunakan objek untuk mengakses fungsi anggota.

class Example {
    static double getPI() { // <==
        return 3.1415926;
    };
    static int main() {
        double a = Example.getPI();
        return 0;
    }
}

Pewarisan dan polimorfisme

Cava tidak mendukung pewarisan kelas.