Yazan: Şadi Evren ŞEKER

Nesne yönelimli programlama dillerinde bir varlığın (nesne, object) tanımıdır. Daha basit bir şekilde yaşayan bir varlık önce tanımlanmalıdır, bu tanımın yapılmasına sınıf adı verilir.

Bu durum doğal dillerdeki cins isimlere benzetilebilir. Varlıklar ise daha çok özel isimler gibi düşünülebilir. Örneğin kedi kelimesi bir cins isimdir ve daha çok bir sınıfı belirtir. Mesela kedilerin dört ayağı vardır demek ya da kedilerin gözleri gece az ışıkta parlar demek doğrudur. Ancak kedilerin kürkü sarıdır demek yanlıştır. Çünkü kedilerin kürkü farklı renklerde olabilir ama özel bir kedinin kürkü sarı olabilir. Örneğin tekir isimli kedinin kürkü sarıdır cümlesi doğrudur.

Daha basit bir ifadeyle sınıf tanımlarının gerçek hayatta örnekleri yoktur, gerçek hayatta var olanlar nesnelerdir. Sınıflar bu nesnelerin tanımlandığı yerlerdir.

Yorumlar

  1. Ali Kalan

    1. örnek
    class asd1{

    asd1(){
    println("123");
    }
    int x = 5;
    println(x); // 1
    }

    2. örnek
    //main ....
    for(k = 0; k < 5; k++)
    println(k); // 2

    3. örnek
    //main ....
    for(k = 0; k < 5; k++)
    asd1 a = new asd1(); // 3

    4. örnek
    //main ....
    asd1 a;
    for(k = 0; k < 5; k++)
    a = new asd1(); // 4

    Sırayla sorayım hocam bir çok noktadan daha iyi anlatabilirim böylece. 1 numarada println i süslü parantez {} içine almak ona nasıl bir anlam katıyor da sentax hatası olmaktan çıkıp kod çalışıyor.
    Aynı şekilde 2 numarada süslü parantez içine almak ya da almamak farketmiyor o da println. 3 numarada da süslü parantez içine alınca sentax hatası olmaktan çıkıp çalışır hale geliyor. 4 numarada da süslü parantez içine almak ya almamak farketmiyor. Hocam C den geçiş yaptığımı söyleyebilirim , C de süslü parantezin javadaki gibi bir görevi yoktu yani kullanmak istersen kullanırdın mesela for un içinde tek deyim varsa ister kullanırdın ister kullanmazdın ama java da bazı yerlerde bu süslü parantez zorunluluk haline geliyor C 'den farklı olarak. Anlamadığım nokta orası. Teşekkür ederim.

  2. Şadi Evren ŞEKER Article Author

    Bakın durum basitçe şu şekilde.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public class deneme{
     
    // class bloğundayız komut veremeyiz
     
        public static void main(String args[]){
     
        // şimdi main bloğuna girdik komutlar yazılabilir
     
        }
     
    }

    Yukarıdaki kodda görüldüğü üzere 1- 11. satırlar sınıfın geçerli olduğu bloktur. 5-7 satırlar ise main bloğudur. Şimdi C dilinden farklı olarak JAVA'da yeni gelen özellik, bu sınıf tanımları. Javadaki bütün kodlar bir şekilde sınıf (veya benzeri yapılar diyelim) içerisinde tanımlı olmak zorundadır. Ayrıca main veya herhangi diğer bir fonksiyon da sınıfın içerisinde tanımlanabilir. Fonksiyonların (daha doğru ifadeyle metotların) dışında bir de değişken (veya özellik diyelim) tanımlanması da sınıflar içerisinde mümkündür. Ancak sizin println dediğiniz System.out.println bir komuttur (statement) ve bir tanım (declaration) olarak kabul edilmediği için, doğrudan sınıfın bloğunda değil de sınıfın içindeki bir alt blokta tanımlı olmalıdır. Yine C diline benzetecek olursak

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #include <stdio.h>
     
    // burada tanım yapılır komut verilemez
     
    printf("deneme");
     
    int main(){ 
       printf("deneme")
    }

    Yukarıdaki kodda ilk printf hata verecektir sebebi herhangi bir fonksiyon içerisinde olmamasıdır. Yani başlangıç seviyesi için anlaşılması kolay olsun diye söylüyorum, komutların fonksiyonlar içerisinde olması gerekir. Tanımlamalar ise (değişken veya fonksiyon) doğrudan sınıf içerisnde yapılabilir.

    Başarılar

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


beş + 2 =