Önceki yazılarımızda bilinçsizce kullandığımız sınıfları artık anlama vakti geldi. Öncelikle sınıf ve nesne’nin ne olduğunu öğrenelim. Ardından örnekler yapıp öğrendiklerimizi pekiştirelim.
Sınıfları kolay anlayabilmemiz için gerçek dünyadan örnekler vermemiz daha iyi olacaktır. Bunun için hayvanlar alemini kullanalım. Hepimizin bildiği gibi hayvanlar karada, suda ve havada yaşayan hayvanlar diye 3 gruba ayrılır. Havada yaşayanlar uçabiliyor, suda yaşayanlar yüzebiliyor ve karada yaşayanlar ise koşabiliyor. Havada yaşayanların kanatları, suda yaşayanların yüzgeçleri ve karada yaşayan hayvanların ise kolları var (İstisnalar kaideyi bozmaz. Konuyu anlamaya odaklanalım.). Bu örnekten de anlayacağımız gibi her grubun kendine has davranış ve özellikleri var.
Bilgisayar dünyasındaki sınıflar da aynı gerçek dünyada olduğu gibi kodlarımızı çeşitli görevlere göre gruplara ayırmamıza yardımcı oluyor.
Sınıfların en temel yapısı aşağıdaki gibi oluşturulur.
1 2 3 4 |
erişim_belirleyici class sınıf_adı { // Özellikler // Metodlar } |
Erişim belirleyici konusunu bu konudan sonra işleyeceğiz. Şimdilik o kısma takılmamanızı öneririm. Sınıf tanımlanırken erişim belirleyicinin yazılmasa da olur. Eğer erişim belirliyi yazılmazsa sınıf otomatik olarak paket bazında private şeklinde tanımlanır. Paket konusunu da ileriki yazılarda işleyeceğiz. Şimdilik sadece sınıf konusuna odaklanmanız uygun olacaktır.
Örnek bir sınıf tanımlayarak devam edelim.
1 2 3 4 5 6 7 8 9 |
public class Kedi { byte boy; // cm cinsinden short kilo; // gr cinsinden String isim; void sesVer(){ System.out.println("Miyav"); } } |
Gördüğünüz gibi en basit şekilde 3 tane kişisel özelliği 1 tane de karakteristik davranışı olan bir sınıf tanımladık. Artık biz biliyoruz ki “Kedi” denilen bir şey var ve bu şey ses çıkarabiliyor, boyu, kilosu ve kendisine özgü bir ismi var. Buraya kadar sınıfın ne olduğunu anladık ve bir “Kedi” sınıfı oluşturduk ama daha elle tutulur canlı bir kedi göremedik. Şimdi bu kedi sınıfından bir “nesne” oluşturalım ve nesnenin ne olduğunu anlamaya çalışalım.
1 2 3 4 5 6 7 8 |
public class Main { public static void main(String[] args) { Kedi benimKedim = new Kedi(); benimKedim.boy = 42; // cm benimKedim.kilo = 3500; // gr benimKedim.isim = "Pamuk"; } } |
Böylelikle “Kedi” sınıfından canlı bir kedi oluşturmuş olduk ve ona temel özelliklerini atadık. Artık kedimizi istediğimiz gibi yönetebiliriz. Hemen kedimizin sesini duymalı deneyelim.
1 2 3 4 5 6 7 8 9 10 11 |
public class Main { public static void main(String[] args) { Kedi benimKedim = new Kedi(); benimKedim.boy = 42; // cm benimKedim.kilo = 3500; // gr benimKedim.isim = "Pamuk"; benimKedim.sesVer(); } } |
Eğer kodu çalıştıracak olursanız “Miyav” çıktısını verdiğini görürsünüz.
Şimdi örneğimiz üzerinden tekrardan basitçe açıklayalım. Eğer daha önce hiç olmayan bir tür hayvan tanımlıyorsak o bizim için sınıf (class) oluyor. Yani bir fotoğrafa bakıp kedi gördüğünüz zaman “bu bir kedidir” diyebiliyorsunuz. O türün tanımını yapmış oluyorsunuz. Eğer kendinize bir kedi edinir de ona bakmaya başlarsanız artık Kedi denilen bir sınıftan bir canlı nesne (object) oluşturmuş olursunuz. Gözünüzün gördüğü o canlı kedi “nesne” oluyor.
1 |
Kedi benimKedim = new Kedi(); |
Şu tek satırlık kod üzerinden açıklayacak olursak; “Kedi” sınıf (class), benimKedim ise nesne (object) oluyor.
Şimdilik bu yazıya geçici olarak nokta koyuyorum. En kısa zamanda örnekleri zenginleştirerek, sınıf tanımlama kuralarını, erişim belirleyicilerini ve diğer önemli konuları da ekleyerek yazıyı güncelleyeceğim.
Faydalı olması dileğiyle..
İlk Yorumu Siz Yapın