skip to Main Content
Sınıflar

Sınıflar

Nesne yönelimli programlama dillerinde, tüm sınıflar birer nesne ile ifade edilmektedir. Dart programlama dili de nesneye yönelik bir programlama dili olduğu için bu konu Dart dilinin temelini oluşturmaktadır. Nesne yönelimliden kasıt şöyledir. Örneğin; bir okul uygulaması yazacaksınız. Burada okul, sınıflar, sıralar, öğrenciler vb. her şey birer nesnedir. Ve programlama tarafında bunların hepsi ayrı ayrı sınıflar tarafından temsil edililir.

Dart dilinde diğer dillerde olduğu gibi sınıf oluşturmak ve kullanmak çok basittir. Hemen hemen her sınıfın değişkenleri ve fonksiyonları bulunmaktadır. Fakat bunlar zorunlu değildir. Gerçek dünya ile eşleştirirsek konuyu biraz daha iyi kavrarız diye düşünüyorum. Örneğin bir araba düşünelim. Bu araba bizim bir sınıfımızdır, yani yazılım dünyasında bir sınıf ile ifade edilir. Bu arabanın rengi, adı, teker sayısı vb. özellikleri ise arabanın özelliklerini oluşturur. Ve bunlar birer değişkendir. Arabanın ileri gitmesi, geri gitmesi vb. bunlar ise birer eylemdir. Biz de bunları fonksiyon olarak ifade ederiz. Aşağıda araba nesnesinin basit örneği verilmiştir.

class Car {
  String name;  
  String color;  
  String brand;  
  void start() {    
    print("Start the car");  
  }    
  void stop(){    
    print("Stop the car");  
  }
}

Tanımlamış olduğumuz sınıfları kullanabilmek için onlardan yeni bir nesne türetmemiz gerekmektedir. Türettiğimiz bu nesneleri bir değişkene atarız. Ve artık tanımlamış olduğumuz sınıfımızın tüm özelliklerine bu değişken üzerinden erişebiliriz. Kullanımı aşağıdadır.

var car1 = Car(); // Tanımlama 1
car1.name = "Granturismo";
print(car1.name); // Çıktı: Granturismo
print(car1.color); // Çıktı: null, çünkü bir değer atanmamıştır.
Car car2 = Car(); // Tanımlama 2
car2.brand = "Maserati";
print(car2.brand); // Çıktı: Maserati

Dart dilinde sınıfların değişkenlerine ya da fonksiyonlarına erişmek için nokta(.) ifadesini kullanırız. Java yazan programcıların en çok bildiği ve karşılaştığı hatalardan birisi NullPointerException hatasıdır. Yani boş (null) bir değişkenin alt değişkenlerine, fonksiyonlarına erişemezsiniz. Erişmeye çalıştığınızda hata alırsınız. Bunu önlemek için dart dili “?” işaretini devreye almıştır. Değişkene ait bir fonksiyon veya değişkeni kullanmadan önce ?. şeklinde kullanırsanız program hata vermeyecektir. Bu ifadeyi her yerde kullanmak yerine boş olma ihtimali olan yerlerde kullanmanız daha iyi olacaktır.

var car = Car("Granturismo", "Red", "Maserati");
car = null;
print(car.brand); // Hata, çünkü araba nesnesinin değeri yok
print(car?.brand); // Doğru kullanım, Çıktı: null

Dart dilinde her sınıf Object sınıfından türetilmiştir. Ve her sınıfın varsayılan boş bir yapıcı metodu vardır. Yapıcı metod dışında Object sınıfından birçok özellik gelmektedir. Örneğin runtimeType ile sınıf nesnenizin türünü öğrenebilirsiniz.

Bir cevap yazın

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