Javada Static Değişkenler ve Static kullanımı

Static değişkenleri 2 madde üzerinde gösterelim. Bunun için önce örnek kullanacağımız sınıf ve interfaceimizi oluşturalım.

Örneğin; (Eclipse idemizde) staticdegiskenler package imiz içerisinde Uygulama1 ve Uygulama2 şeklinde 2 sınıfımız ve BirinciInterface isminde bir interface imiz olsun.

1-Sınıf ismine bağlı olan değişken türüdür ve sınıf ismine bağlı olarak kullanılabilir ve değiştirilebilir.

şimdi Uygulama2 sınıfımızın içerisine aşağıdaki i değişkenini static olarak tanımlayalım. Bu şekilde sınıf içerisinde tanımladığımızda global şekilde her yerden erişebiliriz.

package staticdegiskenler;

public class Uygulama2 {

	public static int i;
	
	public static void main(String[] args) {

	}
}

Uygulama1 sınıfının içerisine giderek main fonksiyonu içerisinde bu değişkeni sınıf ismiyle erişerek çağıralım ve 100 değerini atayalım. println ile bu değerini görüntüleyelim.

Uygulama2 de değişken tipinin önündeki static kelimesini silersek diğer sınıftan erişemeyiz.

package staticdegiskenler;

public class Uygulama1 {
	public static void main(String[] args) {
		Uygulama2.i=100;
		System.out.println(Uygulama2.i);
	}

}

Uygulamayı koşturduğumuzda 100 değerini görüntüleriz.

Eğer Uygulama2 sınıfının içerisinde final direktifini kullanırsak; i değişkeni yine global olacağı için erişebiliriz fakat değiştiremeyiz. Aşağıdaki şekilde kod satırını revize edelim.

package staticdegiskenler;

public class Uygulama2 {

	public static final int i=51;
	
	public static void main(String[] args) {

	}
}
Değer ataması yaptığımızda hata olduğunu göreceğiz. Çünkü final kelimesi ile değişkenimize erişebiliyoruz ama değiştiremiyoruz. Şimdi 5. satırı silip uygulamayı tekrar koşturalım.
51 değerini görüntüleriz.

2-Interface sınıflarda tanımlanabilir.

Interface lerde oluşturduğumuz static değişkeni de final direktifini kullanmışız gibi algılar ve erişebiliriz fakat değiştiremeyiz. BirinciInterface içerisine aşağıdaki şekilde değişken satırımızı oluşturalım.

package staticdegiskenler;
public interface BirinciInterface {
	public static int i=23;	
}
6.satırda görüldüğü gibi i değişkenini değiştiremeyeceğimizin uyarısını alıyoruz. 6. satırı silip uygulamayı koşturduğumuzda;
23 değerinin çıktısını alırız.
/*Interface sınıfını şu şekilde final kelimesini kullanarakta yazabiliriz.
 Bu seferde sabit (constant) şeklinde programın hiç bir yerinde değişmezler.
*/
package staticdegiskenler;

public interface BirinciInterface {

	public static final int i=23;
		
}