Java’da Static Keyword: Kavramlar ve Kullanımları

Muratguven
2 min readMar 3, 2024

Java programlama dilinin temel yapı taşlarından biri olan “static” keyword, pek çok geliştirici için kafa karıştırıcı olabilir. Ancak doğru kullanıldığında, static keyword Java programlarını daha verimli ve yönetilebilir hale getirebilir. Bu yazıda, static keyword’ün ne olduğunu, nasıl çalıştığını ve gerçek dünya senaryolarında nasıl kullanılabileceğini açıklayacağız.

Static keyword, Java’da nesneye bağlı olmayan (static olmayan) bir değişken veya metot için kullanılır. Bu, bir değişkenin veya metotun bir nesnenin örneği oluşturulmadan doğrudan sınıf adı üzerinden erişilebilir olduğu anlamına gelir. Ancak, bu kavramın tam olarak anlaşılması ve doğru bir şekilde kullanılması biraz pratik gerektirir.

Bu yazıda, static keyword’ün temel kavramlarını açıklayacak, nasıl çalıştığını ve hangi durumlarda kullanıldığını göstereceğiz. Ayrıca, static keyword’ün sınıflar arası veri paylaşımında ve utility metotlarında nasıl kullanılabileceğini göstereceğiz. Son olarak, sık yapılan hataları ve bu hatalardan kaçınmanın en iyi uygulamalarını ele alacağız.

Eğer Java’da static keyword’ün gücünü ve kullanımlarını anlamak istiyorsanız, doğru yerdesiniz. Şimdi, static keyword’ün derinliklerine inelim ve bu önemli kavramı daha iyi anlayalım.

Java’da Static deyimi, sınıf değişkenlerini ve ya sınıf metotlarını tanımlarken kullanılır. Eğer bir sınıfa ait değişkenlerin başına “static” yazılırsa, o değişkenler artık sınıf değişkeni olurlar. Sınıf değişkeni olarak tanımlanan değişkenler, her nesne oluşturduğumuzda ayrı ayrı oluşmazlar. Sınıfa ait ne kadar nesne olursa olsun, sınıf değişkenleri 1 tanedir. Sınıfa ait herhangi bir nesne üzerinden bu değişkene ulaşılabilir. Sınıf değişkenlerinin bir diğer özelliği ise, ilgili sınıfa ait hiç nesne oluşturulmasa bile bellekte yer kaplarlar.

public class User{
static int users;

User() {
users++;
}

public static void main(String[] args) {

User u1 = new User();
User u2 = new User();
User u3 = new User();

System.out.println("Kullanıcılar : " + User.users);
}
}

Eğer sınıfa ait metotlardan bir yada birden fazlasının önüne “static” deyimi yazılırsa, o metotlar sınıf metodu olurlar. Sınıf metotlarının en önemli özelliği, ilgili sınıfa ait nesne oluşturmadan sınıf metodu çağırılabilir. Bir sınıf değişkeninin, henüz nesne oluşturulmasa da bellekte fiziksel olarak yer kapladığını söylemiştik. Bir sınıf metodunun ise nesne oluşturulmadan, sınıf adı üzerinden çağrılabildiğini belirttik. Bu durumda, nesne var olmadan çağrılabilecek olan sınıf metotları, nesne var olmadan bellekte var olamayan olgu değişkenlerine erişmesi olanaklı değildir. Benzer şekilde, nesne var olmadan bellekte var olan sınıf değişkenleri üzerinde işlem yapan yöntemlerin, nesne var olmadan çağrılabilmeleri gerekir.

public class School{
String name;
String code;
String prefix;
int note;

public School(String name, String code, String prefix) {
this.name = name;
this.code = code;
this.prefix = prefix;
this.note = 0;
}

public static void lessonList() {
String[] lessonList= {"fizik", "kimya", "matematik"};
for (String courseName : courseList) {
System.out.println(courseName);
}
}

public static void main(String[] args) {
School s1 = new School("Mat-101" , "MAT" , "MAT");
School.lessonList();
}
}

Unutmayın, static keyword’ü doğru bir şekilde kullanmak, programlarınızı daha etkili hale getirebilir ve kodunuzun daha kolay yönetilmesini sağlayabilir.

Herhangi bir sorunuz veya geri bildiriminiz varsa, lütfen yorumlarda paylaşmaktan çekinmeyin. Başarılar dilerim!

--

--