Apa perbedaan antara variabel kelas dan variabel instance di Java?
Saya masih sangat baru di Java dan ingin memahami perbedaan antara variabel kelas dan variabel instance.
Sebagai contoh:
class Bicycle {
static int cadence = 0;
int speed = 0;
int gear = 1;
}
Bagaimana variabel instance dan variabel kelas berbeda satu sama lain? Variabel mana di sini yang merupakan variabel kelas, dan mana yang merupakan variabel instance? Bagaimana hal ini mempengaruhi ruang lingkup?
15
3
Keduanya adalah variabel anggota, yang berarti bahwa keduanya diasosiasikan dengan kelas. Sekarang tentu saja, ada perbedaan di antara keduanya:
Variabel instance:
Variabel-variabel ini milik instance dari sebuah kelas, jadi sebuah objek. Dan setiap instance dari kelas itu (objek) memiliki salinan variabel itu sendiri. Perubahan yang dibuat pada variabel tidak tercermin dalam instance lain dari kelas itu.
Variabel kelas:
Ini juga dikenal sebagai variabel anggota statis dan hanya ada satu salinan dari variabel tersebut yang digunakan bersama dengan semua instance dari kelas tersebut. Jika perubahan dilakukan pada variabel itu, semua instance lain akan melihat efek dari perubahan tersebut.
Contoh lengkap:
Keluarannya adalah:
Sekarang, ubah variabel instance menjadi variabel kelas dengan membuatnya statis:
Saya menggunakan metode non-statis untuk mendapatkan dan mengatur nilai
Barcode
agar dapat memanggilnya dari objek dan bukan dari kelas. Keluarannya adalah sebagai berikut:Hal ini dijelaskan di sini (dengan contoh kelas
Sepeda
dengan variabel kelasjumlahSepeda
dan variabel contohkecepatan
,kecepatan
,gear
&;id
):Variabel kelas (dinyatakan
statis
) adalah lokasi yang umum untuk semua instance.Dalam contoh,
numberOfBicycles
adalah variabel kelas (karena dideklarasikanstatis
). Hanya ada satu variabel seperti itu (yaitu lokasi) yang umum untuk semua instance dan kelas. Jadi, jika anda memodifikasinumberOfBicycles
dalam satu metode, metode-metode lain akan melihat nilai baru (bahkan untuk objekBicycle
yang berbeda)Sebaliknya,
gear
&;id
adalah variabel instance (karena deklarasi mereka tidak memiliki modifierstatic
). Setiap objekSepeda
memiliki satu objek sendiri. Jika Anda memodifikasigear
untuk beberapaBicycle
a, dan jika b adalah instance yang lain, memodifikasia.gear
tidak berpengaruh padab.gear
Setiap objek Java adalah zona memori yang berbeda dengan beberapa meta data (misalnya beberapa referensi ke kelasnya) dan variabel instance-nya sendiri (mungkin diwarisi dari superclass). Tetapi variabel kelas adalah umum untuk kelas dan dibagi oleh semua instance.
Lihat juga Objek (ilmu komputer) & Variabel instans wikipages.
Variabel Instansi:
Variabel Instance dideklarasikan dalam kelas, tetapi di luar metode, konstruktor atau blok apa pun.
Variabel instance adalah milik instance dari sebuah kelas atau bisa dikatakan variabel instance itu milik objek.
Variabel instance memiliki nilai terpisah dari setiap instance dari kelas. dari kelas.
Variabel Kelas:
Variabel kelas adalah milik kelas.
Variabel kelas dibuat dengan menambahkan kata kunci "statis" sebelum variabel variabel.
Juga disebut variabel statis.
Dan yang paling penting variabel kelas mempertahankan satu nilai bersama untuk semua instance dari sebuah kelas, bahkan jika tidak ada objek instance dari kelas tersebut ada.
Perbedaan Singkat Antara Variabel Kelas dan Variabel Instance: