Sınıf ve Nesne Kavramı

Nesne tabanlı programlama (Object Oriented Programming – OOP) kavramında kullanılan sınıf ve nesne kavramları, birbiriyle yakında ilişkilidir ve her şey bu iki olgu üzerine kurulmuştur.

Nesneler Sınıflardan Türetilir

Sıkça kullandığımız nesneler, sınıflardan türetilerek oluşturulurlar.

Yukarıdaki kullanım, sıkça karşılaştığımız yapıya benziyor. Bazı durumlarda sınıflara, daha nesne oluşturulurken parametre gönderilmesi gerekebilir. Bu durumda nesne oluştururken aşağıdaki şekilde bir kullanım gerçekleştirilir:

Yukarıdaki kullanımda nesne oluşturulurken  sınıfın kurucu metoduna “yeni” içerikli string bir değer gönderildi. Bu değeri karşılayabilen örnek sınıf şu şekildedir:

Sınıflarda Kurucu Metotlar

Bir kurucu metot, sınıf adıyla aynı ada sahip, public olarak erişilebilir bir yapıdadır. Parametre alma zorunluluğu yoktur. Bir sınıfın birden fazla tipte kurucu metodu da olabilir, buna metod aşırı yüklemesi (method overloading) denir.

Yukarıdaki şekilde tanımlı bir sınıftan iki şekilde nesne türetmek mümkündür:

veya

Dikkat edilirse, metod tanımlarken metodun döndüreceği int, string gibi tipler veya değer döndürmüyorsa void olarak kullanılan anahtar kelimeler kurucu metotlarda kullanılmaz. Bunnu sebebi kurucu metodun yalnızca nesne türetilirken kullanılabilmesidir, dolayısıyla değer döndürme veya döndürmeme gibi bir amaç taşımamaktadır.

Temel Sınıf Bileşenleri

Sınıflar değişken olarak kullanılan alanlar, özellikler ve metotlardan oluşabilir. (Terminolojinin aksine, alan (field) terimi yerine değişken terimi kullanılacaktır.)

Yukarıda kurucu metodu olmayan bir sınıf örneği gösterilmiştir. Bu örnekte 3 temel yapı bulunmaktadır.

Değişkenler

Değişkenlerin sınıftaki görevleri yine aynı şekildedir: Değer tutmak… Değişkenlerin değer tutması dışında bu değeri kontrol edebilme veya mantıklı olup olmadığına karar verebilme yetiler yoktur. Kısacası kendi değer aralığı içinde olan her veriyi doğal olarak kabul eder ve taşıyabilir. Peki, int olarak tanımlı ve yaş tutan bir değişkene, 2 milyar gibi bir sayı girilmesi nasıl engellenir? Bunun için en kullanışlı yöntem, değişken gibi görünen ancak değişkene aktaracağımız içeriği kontrol edebildiğimiz özellikler kullanılabilir.

Özellikler

Özellikler, değişkenlere çok benzerler. Tıpkı değişkenler gibi tipleri vardır. Ancak özellikten değer çekme veya değer aktarma gibi durumlarda bazı kısıtlamalar koyulabilir. Ayrıca özellikler değer tutamazlar, değişkenlere değer aktarır veya okurken kontrol mekanizması geliştirmemizi sağlarlar.

Değişken ve örnek arasındaki şu farka dikkat edilmelidir: Özellikler, get ve set blokları barındırabilir!

get bloğu ile bir özelliğin dışarıya aktardığı değerin kontrol edilmesi sağlanır. Eğer get bloğu yoksa, aşağıdaki bir kullanım mümkün olmayacaktır:

Ozellik olarak tanımlanan özelliğin dışarıya değer aktarabilmesi için get { … } bloğunun varlığı zorunludur.

Benzer şekilde, bir özelliği değiştirmek, ancak ve ancak içinde set { … } bloğu varsa mümkün olmaktadır. Bu sayede şu şekilde bir kullanım mümkün hale gelir:

Metotlar

Metotlar, prosedürel programlamada kullanılan fonksiyonlara verilen isimdir. Değer döndüren metotların isminin önüne döndüreceği değer tipi yazılır. Eğer değer döndürmeyecekse void anahtar kelimesi kullanılır. İstenirse metodlara parametre dediğimiz değişkenler ile gönderilen verinin karşılanması da mümkündür.

Aşağıda int tipinde değer döndürüp hiç parametre kabul etmeyen metod örneği verilmiştir:

int tipinde değer döndürüp string tipinde parametre olarak veri kabul eden metod:

Değer döndürmeden string ve int tiplerinde parametre olarak veri kabul eden metod:

Değer döndürmeyen ve parametre kabul etmeyen metod:

 

 

 

About Hürkal HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Hürkal HÜSEM →

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.