Değişken private static varName;
bildirmek, değişken bildirmekten farklı private varName;
mıdır?
Evet, ikisi de farklı. Ve birincisi denir class variable
çünkü bunun için tek bir değer tutarken class
diğeri denir instance variable
çünkü farklı için farklı bir değer tutabilir instances(Objects)
. Birincisi jvm'de sadece bir kez oluşturulur ve diğeri örnek başına bir kez oluşturulur, yani 10 örneğiniz varsa private varName;
jvm'de 10 farklı olacaktır .
Değişkeni static
diğer özel özellikler olarak bildirmek mi?
Evet, statik değişkenler normal örnek değişkenlerden farklı özellikler alır. Zaten az bahsetmiştim ve burada bazılarını görelim: class variables
(statik olarak bildirilen örnek değişkenler) gibi sınıf adı kullanılarak doğrudan erişilebilir ClassName.varName
. Ve bu sınıftaki herhangi bir nesneye, yalnızca örnek nesneler tarafından erişilen örnek değişkenlerin aksine değerine erişebilir ve değerini değiştirebilirsiniz. Sınıf değişkenleri statik yöntemlerde kullanılabilir.
private static variable
Java'da a'nın kullanımı nedir ?
Mantıksal olarak, ilkinden daha fazla kontrol sağlayandan private static variable
farklı değildir public static variable
. IMO, kelimenin tam anlamıyla yerine public static variable
göre private static variable
yardımıyla public static
alıcı ve ayarlayıcı yöntemlerinin.
Yaygın olarak kullanılan alanlarından biri private static variable
, Singleton
tüm dünyada o sınıfın yalnızca tek bir örneğine sahip olacağınız basit modelin uygulanmasıdır . Burada static
tanımlayıcı, tek bir örneğin dış dünya tarafından erişilebilir olmasını sağlamak için çok önemli bir rol oynar (Tabii ki genel statik alıcı yöntemi de ana rolü oynar).
public class Singleton {
private static Singleton singletonInstance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return Singleton.singletonInstance;
}
}