Dart Dilinde Sınıf Yapısı (Class)

Dart dilinde sınıf yapısı, İngilizce bilinen adıyla class yapıları, Nesne yönelimli programlama programlarının bel kemiğidir. Dart’ta sınıf yapısı için kullanılan sözdizimi (syntax) Java, C# veya C++ programlama dilleriyle oldukça benzerdir.

Dart Dilinde Sınıf Yapısı

Basit bir sınıf (class) ve bir nesne (object) yapısıyla başlayalım. Şimdiye kadarki derslerimizde değişkenleri ve fonksiyonları işledik. Sınıf yapısını değişkenlerden ve fonksiyonlardan farklı olarak değişkenleri ve fonksiyonları tutacak bir şey gibi tahayyül edelim.

Dart’ta sınıf oluşturabilmek için class anahtar kelimesinden yararlanırız. Sınıf yapısına verilecek isim değişkenlerden (variables) ve fonksiyonlardan (functions) farklı olarak büyük harfle başlayarak adlandırılır.

CamelCase olarak bilinen bu yöntem sınıfları adlandırmak için kullanılmaktadır. Her ne kadar sınıf isimleri küçük harfle başlatılarak adlandırdığında program çalışsa da genel kabul gören jargon ışığında adlandırmaya büyük harfle başlatılması doğru olacaktır.

Adlandırmamızı yaptıktan sonra süslü parantezlerle { } sınıf yapımızı tanımlamış oluruz. Aşağıda örnek bir sınıf yapısı tanımlanmıştır:

class SinifAdi{
  // sınıf işlemleri ve tanımlamaları bu blok içerisinde yapılır.
}

Sınıf yapısını, değişkenleri ve fonksiyonları tutacak bir yapı olarak tahayyül ettiğimizi söylemiştik. Şöyle ki sınıf yapısı içinde pekala değişkenler ve fonksiyonlar tanımlanabilmektedir. Değişkenler, sınıf yapısının sahip oldukları özellikler tanımlanırken fonksiyonlar ile sınıf yapısının sahip olduğu davranış veya yaptığı iş tanımlanır. Ancak sınıf yapısı içinde bu adlandırmalara farklı şekillerde rastlamak mümkün.

Değişkenler (variables), sınıf yapısı içerisindeyken aşağıdaki adlandırmalarla karşımıza çıkabilmektedir:

  • özellik (property)
  • üye (member)
  • nitelik (attribute)

Fonksiyonlar da pekala sınıf yapısı içinde aşağıdaki adlandırmayla kullanılır:

  • metot, yöntem (method)

Dart’ta Sınıf Nesneleri Oluşturma (Object)

Sıra geldi sınıf ile nesne arasındaki farka değinmeye. Kısaca sınıf, nesne oluşturmak için kullanılan taslak yapısıdır diyebiliriz. Aşağıdaki resimde sınıf ve nesne arasındaki ilişki çok net bir şekilde gösterilmektedir:

Dart programlama dilinde her şey, nitelikleri ve yöntemleriyle birlikte sınıflar ve nesnelerle ilişkilidir. Yukarıda görüleceği üzere sınıf, nesneler oluşturmak için bir plan, taslak gibidir. Yani sınıf olarak bilinen bir şablondan nesne oluşturulmaktadır.

Nesne ise bir sınıfın değişkenidir (veya örneğidir). Bu demekti ki nesneler kendi sınıflarının davranışlarına sahiptir. Bir nesnenin kendisiyle ilişkili bir durumu (özellik) ve davranışı vardır. Bir nesnenin durumu, değişkenlerde depolanırken, yöntemler (fonksiyonlar) vasıtasıyla nesnenin davranışı temsil edilir.

Dart’ta bir sınıf tanımlandıktan sonra, sınıf alanlarına ve işlevine erişimi olan ilgili sınıfın nesnelerini oluşturabiliriz. Aşağıda, bir sınıfın nesnesini bildirmek için genel sözdizimi verilmiştir:

var nesneAdi = SinifAdi();

Bilindik bir örnek olan arabaları kullanarak örnek bir sınıf yapısı oluşturalım:

void main(){
  var arabaNesnesi = Araba();
}

class Araba{
   String? arabaAdi;
   int? arabaModeli;
   int? arabaFiyati;
  
   arabaOzellikleri(){
     print("arabanın adı: $arabaAdi, arabanının modeli: $arabaModeli");
  }
}

Yukarıdaki örneğimizde bir sınıf ve sınıfa bağlı bir nesne oluştursak da sınıfın özelliklerine ve yöntemine erişmediğimiz için ekranda bir çıktı göremedik.

Dart’ta bir sınıfın örneğini oluşturduğumuzda, örnek adından sonra nokta (dot) . operatörü ile ayrılmış özellik/yöntem adını kullanarak o sınıfın özelliklerine ve yöntemine erişebiliriz:

void main(){
  var arabaNesnesi = Araba();
  arabaNesnesi.arabaAdi = "BMW";
  arabaNesnesi.arabaModeli = 2002;
  arabaNesnesi.arabaOzellikleri();
}

class Araba{
   String? arabaAdi; //başlangıç bir değer atanmadı ve null olmaması için ? kullanıldı
   int? arabaModeli;
   int? arabaFiyati;
  
  arabaOzellikleri(){
    print("arabanın adı: $arabaAdi, arabanının modeli: $arabaModeli");
  }
}

Çıktı: arabanın adı: BMW, arabanının modeli: 2002

Kodu çalıştırmak için: DartPad

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu