Java'da sınıfların, değişkenlerin ve yöntemlerin nasıl çalıştığını anlamak için statik ve statik olmayan kavramlarını anlamak çok önemlidir. Statik olmayan üyeler belirli sınıf örneklerine bağlanırken statik üyeler sınıfa bağlanır. Bu bölümde, statik ve statik olmayan Java bileşenlerini karşılaştıracağız, bunların farklılıklarını ve potansiyel uygulamalarını vurgulayacağız.
ile ilişkili
Statik: Statik üyeler (değişkenler ve yöntemler), bireysel örneklerden ziyade sınıfın kendisiyle ilişkilendirilir.
Statik Olmayan: Statik olmayan üyeler, sınıftan oluşturulan nesnelere bağlı oldukları için sınıfın her örneğine özeldir.
Bellek Tahsisi
Statik: Statik üyelere, sınıf yükleme sırasında yalnızca bir kez bellek ayrılır. Sınıfın tüm örnekleri arasında paylaşılırlar.
Statik Olmayan: Statik olmayan üyeler, sınıfın her örneği için ayrı ayrı ayrılmış belleğe sahiptir. Her nesnenin statik olmayan üyelerin kendi kopyası vardır.
Erişim
Statik: Statik üyelere, sınıf adı ve ardından üye adı (örneğin, ClassName.memberName) kullanılarak doğrudan erişilebilir. Program içerisinde her yerden erişilebilirler.
Statik Olmayan: Statik olmayan üyelere, bir nesne referansı ve ardından üye adı (örn., objectReference.memberName) kullanılarak erişilir. Sınıfın belirli bir örneğine özgüdürler.
Başlatma
Statik: Statik üyeler, sınıf belleğe yüklendiğinde, genellikle programın başlatılması sırasında başlatılır. Başlatma yalnızca bir kez gerçekleşir.
Statik Olmayan: Statik olmayan üyeler, sınıfın her bir örneği oluşturulduğunda, genellikle new anahtar sözcüğü kullanılarak başlatılır. Başlatma her nesne için ayrı ayrı gerçekleşir.
Kapsam
Statik: Statik üyeler global bir kapsama sahiptir ve sınıfın bir örneğini oluşturmadan bile programın herhangi bir yerinden erişilebilir.
Statik Olmayan: Statik olmayan üyelerin yerel kapsamı vardır ve bunlara yalnızca sınıfın bir örneği aracılığıyla erişilebilir. Bir nesne oluşturulmadan bunlara erişilemez.
Üyelere Erişim
Statik: Statik üyeler yalnızca aynı sınıftaki diğer statik üyelere erişebilir. Statik olmayan üyelere doğrudan erişemezler.
Statik Olmayan: Statik olmayan üyeler aynı sınıf içindeki hem statik hem de statik olmayan üyelere erişebilir. Tüm üyelere doğrudan erişimleri vardır.
Kullanım
Statik: Statik üyeler genellikle bireysel örneklere özgü olmayan yardımcı yöntemler, sabitler veya değişkenler için kullanılır. Örneğin matematiksel fonksiyonları içeren bir Math sınıfı.
ağ türleri
Statik Olmayan: Statik olmayan üyeler, her nesneye özgü verileri tuttukları için örneğe özgü davranışlar için kullanılır. Örneğin, her nesne için benzersiz değerleri saklayan örnek değişkenler.
Bellek Verimliliği
Statik: Statik üyeler, oluşturulan örnek sayısından bağımsız olarak belleği yalnızca bir kez kullanır. Aynı verilerin tüm nesnelerde paylaşılması gerektiğinde bellek açısından verimli olabilirler.