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.
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.
Bakın durum basitçe şu şekilde.
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
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
Teşekkür ederim hocam