Merhabalar, geçen yazımda nesnelere giriş yapmıştım. Nesneler nedir, nasıl oluşturulur adına iyi bir giriş yaptığımızı düşünüyorum. Bu yazıda Java’da “fields”, bazı dillerde de “instance variables” diye adlandırılan konuyu anlatmaya çalışacağım.

Bildiğiniz üzere bir nesneler birer temsilci görevi görüyorlar. Farklı farklı sınıfları bir sınıf üzerinde nesne üreterek temsil ediyoruz. Günlük hayatta her nesnenin birden çok özelliği vardır. Mesela şu an size en yakın nesneye  baktığınızda rahatlıkla ismini, rengini, şeklini söyleyebilirsiniz. Bunlar nesnelerin özelliklerine birer örnektir.

Biz geçen yazıda boş bir sınıf oluşturduk ve ardından da örnek bir nesne oluşturmuştuk. Şimdi gelin o örneği devam ettirelim ve sınıfımıza bir isim özelliği verelim. Bunun bildiğiniz değişken tanımlama işlemi olduğunu unutmayalım. Sonra o sınıf örneğinden örnek nesneler üretelim daha sonra onlara isimlerini verelim. Yani değişkene değer ataması yapalım.

package com.ufukcanli

class Insan {
    public String isim;
}

public class NesnelerinOzellikleri {
    
    public static void main(String[] args) {
        
        Insan insan1 = new Insan();
        insan1.isim = "Ufuk";

        Insan insan2 = new Insan();
        insan2.isim = "İsmail";

        System.out.println("insan1'in ismi: " + insan1.isim);
        System.out.println("insan2'nin ismi: " + insan2.isim);

    }
}

Yukarıda geçen “Insan” adlı sınıfımıza “isim” adında bir özellik verdik. Dikkat ettiyseniz başında “public” anahtar kelimesini kullandık. Erişim belirleyiciler konusunda bunları teker teker anlatacağım fakat şimdilik bilmenizi istediğim şey: başında bu anahtar kelimeyi koyarak diğer sınıflardan, nesne üzerinden o değişkene müdahale edebilme izni veriyoruz. “NesnelerinOzellikleri” adlı sınıfta yaptığımız şey buna bir örnektir.

Peki ana metot içerisinde neler yaptık? İlk önce “insan1” adında bir nesne oluşturduk ve ona hemen alt satırda isim özelliği verdik. E zaten onun ismi insan1 değil miydi ya? Hayır değildi. O sadece referans bir isimdi. Onun görevi bilgisayarın belleğinde nesne için ayrılan adresi tutmak. Bir nevi “pointer” yada “işaretçi” diyebiliriz.

Daha sonra başka bir nesne oluşturduk ve ona da önceki nesneye yaptığımız işlemi yaptık. Son satırlarda da ekran çıktısı görebilmek adına yazdırma komutunu kullandık.

Siz de kendi kendinize bir sınıf oluşturabilir, ona özellikler verebilir, nesneler oluşturabilir ve daha sonra da özelliklere, tıpkı yukarıdaki örnekte yaptığımız gibi, değerler atayabilirsiniz. Unutmayın bir nesnenin birden çok özelliği olabilir.

Sonraki yazımda nesneler üzerinden ilerlemeye devam edeceğiz.