Merhabalar.

Dart eğitiminde OOP yani nesne yönelimli programlamayı anlamak adına bilmemiz gereken kavramlardan ilkiyle beraberiz.

Bu yazımda sınıf yapısına bakacağız.

Dart dilinde bildiğiniz üzere her şey bir nesnedir. Değerler bu nesnelerden türetilir ve kullanılır.

Dart dilinde geliştiricilerinin yazdıkları sınıfların yanında kendi sınıflarımızı yaratabiliriz.

Sınıflar bir kütüphane içinde bulunabilirler. Yazmış olduğumuz sınıfları kullanabilmek için bu sınıfı hangi kütüphane, hangi modül içinde yazdıysak onu tanımlamamız gerekir.

Neden sınıf kavramına ihtiyaç duyuyoruz bunu anlamaya çalışalım.

Örneğin bir program yazıyoruz ve bir personel işlemi yaptırıyoruz.

Personelle ilgili standart bilgiler var. İsim, soyisim, email… vs gibi.

Aynı zamanda bu Personelin bir takım yaptığı görevleri var.

Çıktı al, kişi kaydet, güncelle, mola ver vs gibi.

Şimdi büyük bir proje yaratttığımızı düşünelim. 100’den fazla proje dosyamız var. Her dosyanın içinde personellerle ilgili bilgilerin alındığı aynı zamanda personellerle ilgili işlemlerin yapıldığı.

Sınıf kavramını bilmeseydik.

Bunu şöyle çözmemiz gerekirdi. 100 sayfanın tamamında personel özelliklerini tanımlamalı, bütün metodlarını tek tek yazmalıydık. Kopyala yapıştırla yapacak olsak bile bu işlem sonunda proje dosyamız kodla şişmiş olacaktır. Hem de aynı işi yapan tekrar eden kodlarla.

Bir de şu senaryoya bakalım.

Örneğin personele bir süre sonra bir method daha eklenmesi gerekti. Şu durumda bütün kod dosyalarını gezip bu metodu tek tek eklememiz gerekecekti. Büyük ihtimal gözümüzden kaçanlar olacaktı. Proje önemli hatalar verecekti. Her türlü hem zaman hem para kaybetmiş olacaktık.

Burada düşününce aklımıza şöyle bir çözüm gelir.

Biz bu personeli, özellikleri ve metodları ile beraber bir dosyada yazsak oluştursak. Daha sonra nesneyi referans gösterip istediğimiz her yerde bu dosyadan bir instance oluştursak ve bundan sonra bu instance üzerinden nesnenin tüm özelliklerine ulaşabilsek. İşte sınıf kavramı tam olarak budur.

Böylelikle aynı kodları tekrar tekrar yazmamız gerekmez. Sadece ilgili yerde sınıftan bir nesne türetip tüm özelliklerine ulaşıp işlemleri yaparız.

Aynı zamanda bir kod güncellemesi gerektiğinde bunu sadece sınıfın dosyasında yaparak kolayca çözebiliriz.

Bir dosya içinde birden fazla sınıf tanımlaması yapılabilir. Birbiriyle bağlantılı sınıflarda bunu yapmanızı tavsiye edebilecek olsak da yine de her sınıfı ayrı bir dart dosyası içinde yazabiliriz.

Tanımlama

class Sınıfİsmi{

}

şeklinde olur.

Bir standart olarak sınıf ismini yazarken her kelimenin ilk harfi büyük yazılabilir. Yazmasanız da bir şey fark etmez. Ancak standartlara uymak iyidir. Okunaklı kodlar yazmanızı sağlar.

Sınıflar içinde ilgili sınıfa ait özellikler bulunur buna properties deriz.

Her sınıfın aynı ismi taşıyan bir yapıcı metodu vardır buna constructor deriz. Eğer biz tanımlamaz isek otomatik olarak boş bir constructor oluşturulur. Biz sınıftan her nesne türettiğimizde ilk constructor metodu tetiklenir.

Constructor metodunu şöyle düşünebilirsiniz. Sınıftan bir nesne oluşturulur oluşturulmaz yapılmasını istediğiniz işlemler var ise bu metodun içinde yazabilirsiniz.

Bir sınıfın içinde sınıfın işlerini anlatan metodlar bulunur. Bunu zaten daha önce görmüştük.

Aynı zamanda bir sınıf getter ve setterlara sahip olabilir. Getter ve setterlar kapsülleme için gereklidir. Güvenlik için kullanılır. Bunlara detaylı şekilde gireceğiz.

Bir sonraki yazımızda adım adım sınıflarla kod yazmaya başlayacağız.

Görüşmek üzere.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.