İçeriğe geç

Ruby Günlükleri #6 | Sınıflar ve Nesneler

Ruby Günlükleri serisinin #6 yazısında Ruby programlama dilinde sınıflar ve nesneler hakkında kısa ama çok açıklayıcı olmasını umduğum bir yazıyla karşınızdayım. 🙂

Tipler, döngüler, modüller gibi Ruby’nin sözdiziminin geri kalanına geçmek yerine (ama korkmaya gerek yok, yakında bunlara geri döneceğiz) – sınıfları ve nesneleri nasıl oluşturacağımıza bir göz atmak iyi bir tercih olabilir.

Sınıflar, Nesneler ve Methodlar

Bir “sınıf”, bir nesne için önden yapılan plan olarak tanımlanabilir. Bir nesnenin içerdiği veriyi ve davranış biçimini tanımlar. Tek bir sınıftan pek çok farklı nesne oluşturulabilir. Yani bir Kategori sınıfınız olabilir, ancak üç adet kategori nesnesi olabilir: Masa tenisi, kukla ve diş ipi. Bir method sınıf içinde tanımlanan bir işlev veya alt rutin gibidir.

Ruby’nin nesne odaklı olduğunu söylemek önemli değil gibi görünebilir (Zaten nereye baksanız bu söyleniyor 😀 ). Bu günlerde bütün diller öyle değil mi zaten? Bir noktaya kadar evet. Çoğu modern ‘nesne yönelimli’ diller (Java, C ++, C #, Nesne Pascal vb.) daha az veya daha fazla OOP özelliğine sahiptir. Öte yandan, Ruby  ise takıntılı bir şekilde nesne yönelimli diyebiliriz. Aslında, Smalltalk veya Eiffel’de (nesneler hakkında Ruby’den daha saplantılı olan diller) programlamadıkça, şimdiye kadar kullandığınız en nesne yönelimli dil olacaktır.

Sayılar ve dizeler gibi basit şeylerden dosya ve modüller gibi karmaşık şeylere kadar her veri yığını bir nesne olarak değerlendirilir. Ve bir nesneyle yaptığınız her şey bir methodla yapılır. Artı (+) ve eksi (-) gibi ‘operatörler’ bile methodlardır. Aşağıdakileri göz önünde bulunduralım:

x = 1 + 2

Burada +, Tamsayı (1) nesnesinin bir methodudur. Bu methodda 2 değeri gönderilir; Sonuç 3, döndürülür ve bu x nesnesine atanır. Dahası, operatör (=), bir nesneyle yaptığınız her şeyin bir methodla yapıldığı kuralının en nadir istisnalarından biridir. Atama operatörü, özel bir dahili “thingummy” ile çalışır, (burada ‘thingummy’resmi terminoloji değildir, eklemeyi hızlandırmaktır) ve herhangi bir yöntem değildir.

Şimdi kendi nesnelerimizi nasıl oluşturacağımızı görelim. Çoğu diğer OOP dillerinde olduğu gibi, bir Ruby nesnesi bir sınıf tarafından tanımlanır. Sınıf, bireysel nesnelerin oluşturulduğu bir plan gibidir. Örneğin, bu sınıf bir köpek tanımlar:

Sınıf tanımlamasının, anahtar kelime sınıfıyla (hepsi küçük harf) ve büyük harfle başlayan sınıfın adı ile başladığını unutmayın. Sınıf, bir isim_ver metodu içerir. Bu, dışarıdan alınacak bir argüman olarak, isim alır. Metodun içinde ise, isim değerini @kopekismi adlı bir değişkene atar.

İşte Ruby içerisinde, sınıflar, methodlar ve nesneler bu şekilde, umarım anlaşılır ve faydalı olmuştur. Yorumlarınızı ve paylaşımlarınızı esirgemeyin. 🙂

İlk Yorumu Siz Yapın

Bir cevap yazın

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