Apakah mendeklarasikan variabel private static varName;berbeda dengan mendeklarasikan variabel private varName;?
Ya, keduanya berbeda. Dan yang pertama disebut class variablekarena memiliki nilai tunggal untuk itu classsedangkan yang lain disebut instance variablekarena dapat memiliki nilai yang berbeda untuk yang berbeda instances(Objects). Yang pertama dibuat hanya satu kali dalam jvm dan yang lain dibuat sekali per instance yaitu jika Anda memiliki 10 instance maka Anda akan memiliki 10 berbeda private varName;dalam jvm.
Apakah mendeklarasikan variabel sebagai staticmemberikannya properti khusus lainnya?
Ya, variabel statis mendapatkan beberapa properti yang berbeda dari variabel instance normal. Saya sudah menyebutkan beberapa dan mari kita lihat beberapa di sini: class variables(variabel instan yang dinyatakan sebagai statis) dapat diakses langsung dengan menggunakan nama kelas seperti ClassName.varName. Dan objek apa pun dari kelas itu dapat mengakses dan mengubah nilainya, tidak seperti variabel instan diakses hanya oleh objeknya masing-masing. Variabel kelas dapat digunakan dalam metode statis.
Apa gunanya a private static variabledi Jawa?
Logikanya, private static variabletidak ada bedanya public static variabledengan yang pertama memberi Anda lebih banyak kontrol. IMO, Anda benar-benar dapat mengganti public static variabledengan private static variabledengan bantuan public staticgetter dan setter metode.
Satu area yang banyak digunakan private static variable adalah dalam penerapan Singletonpola sederhana di mana Anda hanya akan memiliki satu instance dari kelas itu di seluruh dunia. Di sini staticpengidentifikasi memainkan peran penting untuk membuat satu instance dapat diakses oleh dunia luar (Tentu saja metode pengambil statis publik juga memainkan peran utama).
public class Singleton {
private static Singleton singletonInstance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return Singleton.singletonInstance;
}
}