Statik Değişken Java
- Statik Değişkenler
- Statik Yöntemler
- Statik Kod Blokları.
Önce statik değişkenlere ve statik yöntemlere bakalım.
Statik Değişken Nedir? Java?
Statik değişken Java sınıfa ait olan ve yürütmenin başlangıcında yalnızca bir kez başlatılan değişkendir. Nesneye (örneğe) değil, sınıfa ait olan bir değişkendir. Statik değişkenler yürütmenin başlangıcında yalnızca bir kez başlatılır. Bu değişkenler, herhangi bir örnek değişkenin başlatılmasından önce ilk olarak başlatılacaktır.
- Sınıfın tüm örnekleri tarafından paylaşılacak tek bir kopya
- Statik bir değişkene doğrudan sınıf adıyla erişilebilir ve herhangi bir nesneye ihtiyaç duyulmaz.
Sözdizimi:
<class-name>.<variable-name>
Statik Yöntem Nedir? Java?
Statik yöntem Java nesneye değil sınıfa ait olan bir yöntemdir. Statik bir yöntem yalnızca statik verilere erişebilir. Nesneye (örneğe) değil, sınıfa ait olan bir yöntemdir. Statik bir yöntem yalnızca statik verilere erişebilir. Statik olmayan verilere erişemez (örnek değişkenler).
- Statik bir yöntem yalnızca diğer statik yöntemleri çağırabilir ve kendisinden statik olmayan bir yöntemi çağıramaz.
- Statik bir yönteme doğrudan sınıf adıyla erişilebilir ve herhangi bir nesneye ihtiyaç duymaz.
- Statik bir yöntem hiçbir şekilde "bu" veya "süper" anahtar kelimelere atıfta bulunamaz
Sözdizimi:
<class-name>.<method-name>
Not: main yöntemi statiktir, çünkü herhangi bir örnekleme gerçekleşmeden önce bir uygulamanın çalışması için erişilebilir olması gerekir.
Bazı alıştırmalar yaparak statik anahtar kelimelerin nüanslarını öğrenelim!
Örnek: Statik değişkenler ve yöntemler nasıl çağrılır
) 1 Adım Aşağıdaki kodu bir düzenleyiciye kopyalayın
public class Demo{ public static void main(String args[]){ Student s1 = new Student(); s1.showData(); Student s2 = new Student(); s2.showData(); //Student.b++; //s1.showData(); } } class Student { int a; //initialized to zero static int b; //initialized to zero only when class is loaded not for each object created. Student(){ //Constructor incrementing static variable b b++; } public void showData(){ System.out.println("Value of a = "+a); System.out.println("Value of b = "+b); } //public static void increment(){ //a++; //} }
) 2 Adım Kodu kaydedin ve derleyin. Kodu şu şekilde çalıştırın: Java Demosu.
) 3 Adım Beklenen çıktı aşağıda gösterilmiştir
Aşağıdaki diyagram, referans değişkenlerinin ve nesnelerinin nasıl oluşturulduğunu ve statik değişkenlere farklı örnekler tarafından nasıl erişildiğini göstermektedir.
) 4 Adım Sözdizimini kullanarak sınıfın dışından statik bir değişkene erişmek mümkündür. ClassName.Variable_Name. 7 ve 8 numaralı satırların yorumunu kaldırın. Kaydet, Derle ve Çalıştır. Çıktıyı gözlemleyin.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
) 5 Adım Yorum satırı 25,26 ve 27'yi kaldırın. Kaydet, Derle ve Çalıştır.
error: non-static variable a cannot be referenced from a static context a++;
) 6 Adım Hata = ? Bunun nedeni “örnek değişkenine erişimin mümkün olmamasıdır”a” Java statik sınıf yönteminden”artım".
Statik Blok Nedir? Java?
The statik blok bir ifadenin içindeki bir ifade bloğudur Java Bir sınıf ilk kez yüklendiğinde yürütülecek sınıf JVM. bir statik blok, statik veri üyelerinin başlatılmasına yardımcı olurTıpkı yapıcıların örnek üyelerini başlatmaya yardımcı olması gibi.
class Test{ static { //Code goes here } }
Aşağıdaki program Java statik bloğunun bir örneğidir.
Örnek: Statik bloğa nasıl erişilir
public class Demo { static int a; static int b; static { a = 10; b = 20; } public static void main(String args[]) { System.out.println("Value of a = " + a); System.out.println("Value of b = " + b); } }
Programın çıktısını aşağıdaki gibi alacaksınız.
Value of a = 10 Value of b = 20