Cava memungkinkan Anda mendefinisikan variabel dalam dua kategori.
Definisikan variabel
Cava memungkinkan Anda mendefinisikan variabel dalam dua kategori berikut:
Variabel lokal
Variabel anggota dari sebuah kelas
Catatan: Cava tidak mendukung variabel kelas. Jika Anda mendefinisikan variabel kelas, kesalahan kompilasi mungkin terjadi. Untuk informasi lebih lanjut, lihat Pengubah.
Variabel Lokal
Variabel Numerik
Kode contoh berikut menunjukkan cara mendefinisikan variabel lokal bernama
adengan tipeINTdan menetapkan nilai10ke variabel tersebut:
class Example {
// ...
int test() {
int a; // <==
a = 10;
return a + 1;
}
// ...
}Kode contoh berikut menunjukkan cara mendefinisikan variabel lokal bernama
amenggunakan nilai awalnya10:
class Example {
// ...
int test() {
int a = 10; // <==
return a + 1;
}
// ...
}Variabel Objek
Setelah mendefinisikan variabel objek, Anda harus menggunakan kata kunci new untuk membuat objek yang relevan. Jika tidak, isi dari variabel objek menjadi null, dan pengecualian akan dilemparkan saat Anda mengakses variabel objek tersebut.
class Example {
public double PI;
Example(double customPI) {
this.PI = customPI;
}
static int main() {
Example a = new Example(3.1415926); // <==
return 0;
}
}Variabel Array
Kode contoh berikut menunjukkan cara mendefinisikan variabel array bernama
ayang terdiri dari10elemen bertipeINT. Nilai awal elemen-elemen ini diatur ke[0,1,2,3,4,5,6,7,8,9].
class Example {
// ...
int test() {
int[] a = new int[10];
for (int i = 0; i < a.length; ++i) {
a[i] = i;
}
return a[0];
}
// ...
}Kode contoh berikut menunjukkan cara mendefinisikan variabel array yang terdiri dari 10 elemen bertipe
INTdengan menginisialisasi daftar. Nilai awal elemen-elemen ini diatur ke[0,1,2,3,4,5,6,7,8,9]. Catatan: Kompiler secara otomatis melakukan inferensi jumlah elemen dalam array.
class Example {
// ...
int test() {
int[] a = new int[]{0,1,2,3,4,5,6,7,8,9};
return a[0];
}
// ...
}Kode contoh berikut menunjukkan cara mendefinisikan array objek. Catatan: Setelah mendefinisikan array objek, Anda harus membuat objek untuk setiap elemen dalam array.
class Example {
public double PI;
Example(double customPI) {
this.PI = customPI;
}
static int main() {
Example[] a = new Example[10]; // Definisikan array objek.
for (int i = 0; i < a.length; ++i) {
a[i] = new Example(3.1415926); // Inisialisasi objek untuk setiap elemen dalam array.
}
return 0;
}
}Variabel Anggota dari Sebuah Kelas
Untuk informasi lebih lanjut tentang cara mendefinisikan dan menggunakan variabel anggota kelas, lihat Kelas dan Objek.
Tipe data bawaan
Cava mendukung tipe data umum berikut. Konten dalam tanda kurung () menunjukkan ukuran memori yang ditempati oleh nilai dari tipe yang ditentukan.
BOOLEAN (1 byte)
BYTE (1 byte)
CHAR (2 byte)
PENDEK (2 byte)
INT (4 byte)
LONG (8 byte)
FLOAT (4 byte)
DOUBLE (8 byte)
Nilai dari tipe CHAR dikodekan dalam panjang tetap dua byte. Format pengkodean ini mirip dengan format pengkodean UTF-16 di Java. Panjang byte dalam nilai yang dikodekan adalah tetap, bukan variabel.
Konversi Tipe Data
Mirip dengan sebagian besar bahasa pemrograman, tipe data yang didukung oleh Cava dapat dikonversi satu sama lain. Dalam kasus tertentu, kompiler menyisipkan kode baru untuk secara otomatis mengonversi tipe data sumber menjadi tipe tujuan.
Konversi antara Tipe Data yang Kompatibel
Tipe data sumber dan tujuan mungkin memiliki hubungan berikut:
Untuk tipe data integer, rentang nilai dari tipe data tujuan mencakup tipe data sumber.
Untuk tipe data floating-point, presisi dari tipe data tujuan lebih tinggi atau sama dengan tipe data sumber.
Dalam kasus di atas, konversi tersebut aman. Sebagai contoh, konversi dari tipe data SHORT ke tipe data INT atau dari tipe data FLOAT ke tipe data DOUBLE adalah aman. Contoh berikut menunjukkan kode yang mungkin disisipkan oleh kompiler untuk melaksanakan konversi:
float a = 3.14f;
double b = a;
short c = -1;
int d = c;Konversi antara tipe data di Cava sama dengan yang ada di bahasa pemrograman umum lainnya, seperti Java dan C++.
Konversi Eksplisit
Presisi dari tipe data tujuan mungkin lebih rendah daripada tipe data sumber dan rentang nilai dari tipe data tujuan mungkin tidak mencakup tipe data sumber. Dalam kasus seperti itu, kompiler memeriksa kode dan mengembalikan kesalahan. Contoh:
double a = ...;
float b = a; // Terjadi kesalahan. Konversi ini dapat menyebabkan hilangnya presisi.Konversi kedua tipe ini tidak aman dan kompiler melarang konversi otomatis semacam itu. Namun, jika Anda mengetahui risiko potensial, Anda dapat melaksanakan konversi eksplisit dalam kode untuk mencegah kesalahan yang dilaporkan oleh kompiler.
float a = 3.14f;
int b = (int)a; // Bagian pecahan dibuang. Nilai dibulatkan ke bilangan bulat.Tipe data kustom
Cava memungkinkan Anda mendefinisikan kelas dan membuat objek. Untuk informasi lebih lanjut, lihat Kelas dan Objek.