Sobes.tech
Junior

Java'da 'static' anahtar kelimesi ne anlama geliyor?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da static, bir öğenin belirli bir nesne örneğine değil, sınıfa ait olduğunu bildirmek için kullanılır.

Anahtar kelime şu durumlara uygulanabilir:

  • Değişkenler (alanlar):
    • Bir kopyası tüm sınıf için geçerlidir, oluşturulan örnek sayısından bağımsızdır.
    • Sınıfın adıyla erişilebilir (örneğin, ClassName.staticVariable).
    // Statik değişken örneği
    public class MyMath {
        public static final double PI = 3.14159;
        // Erişim: MyMath.PI
    }
    
  • Yöntemler:
    • Yöntem sınıfa aittir, belirli bir nesneye değil.
    • Sınıf adıyla çağrılabilir (örneğin, ClassName.staticMethod()).
    • Sınıfın örneğine bağlı olmayan üyelerine (değişkenler veya yöntemler) erişimi yoktur.
    // Statik yöntem örneği
    public class Calculator {
        public static int add(int a, int b) {
            return a + b;
        }
        // Çağrı: Calculator.add(5, 3)
    }
    
  • İlk yükleme blokları:
    • JVM'ye sınıf yüklendiğinde bir kez çalışır.
    • Statik alanların başlatılması veya sınıfla ilgili diğer işlemler için kullanılır.
    // Statik blok örneği
    public class DataInitializer {
        static {
            // Sınıf yüklendiğinde çalışacak kod
            System.out.println("DataInitializer sınıfı yüklendi.");
        }
    }
    
  • İç içe sınıflar (inner/nested classes):
    • Statik iç içe sınıf, normal üst sınıf gibi davranır, sadece başka bir sınıfın içinde bulunur.
    • Erişim için dış sınıfın örneğini oluşturmak gerekmez.
    • Sadece dış sınıfın statik üyelerine erişebilir.
    // Statik iç içe sınıf örneği
    public class OuterClass {
        static class StaticInnerClass {
            // Statik iç içe sınıfın alanları ve yöntemleri
        }
    }
    // Erişim: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
    

static kullanımı, yardımcı sınıflar oluşturmak, ortak verileri depolamak ve sınıf seviyesinde durumu yönetmek için faydalıdır.