Ahmet Balaman LogoAhmet Balaman

Dart'ta Tip Dönüşümleri ve Static Değişkenler - İlk Günümden Notlar

personAhmet Balaman
calendar_today
DartFlutterProgramlama TemelleriTip Dönüşümü

Dart Öğrenme Serüvenim Başladı

Merhaba! Bugün Flutter ile ciddi anlamda uğraşmaya başladım. Ama işe direkt Flutter'dan girmek yerine temelden başlamak istedim. Çünkü biliyorsunuz, bina ne kadar sağlam temele oturuyorsa o kadar uzun ömürlü oluyor. Aynı mantıkla Dart dilini iyi öğrenmeden Flutter'a atlamak istemedim.

Canlı Demo: Dart Tip Dönüşümleri

Tip dönüşümleri ve static kavramlarını interaktif olarak deneyin:

Tip Dönüşümleri (Type Conversion)

İlk karşılaştığım konulardan biri tip dönüşümleriydi. Mesela elinizde String formatında bir sayı var ve bunu matematiksel işlemlerde kullanmanız gerekiyor. İşte tam burada devreye giriyor parse metodları.

String yazi = "3";
int sayi = int.parse(yazi);

Basit görünüyor değil mi? Ama dikkat edilmesi gereken önemli bir nokta var: Eğer String içinde sayı dışında bir şey varsa (mesela "3a" gibi) program hata verecektir. Bu yüzden kullanıcıdan veri alırken try-catch bloklarıyla güvenli bir şekilde çalışmak gerekiyor.

Pratikte Karşılaştığım Bir Durum

Kullanıcıdan yaş bilgisi alırken bu durumla karşılaştım. TextField'dan gelen her şey String oluyor, ama yaşla matematiksel işlem yapmam gerekiyordu:

String kullaniciYasi = "25";
int yas = int.parse(kullaniciYasi);
int gelecekYas = yas + 5;
print("5 yıl sonra $gelecekYas yaşında olacaksınız");

Static Değişkenler - Biraz Kafam Karıştı Ama Anladım

Static konusunu ilk okuduğumda tam olarak ne işe yaradığını anlamamıştım açıkçası. Ama birkaç örnek yaptıktan sonra mantığını kavradım.

Static değişkenler, sınıftan nesne oluşturmadan direkt kullanabildiğimiz değişkenlerdir. Şöyle düşünün: Bir fabrika var ve bu fabrikanın bir sayacı var. Her üretim yapıldığında bu sayaç artıyor. İşte bu sayacın her ürün için ayrı ayrı değil, fabrika genelinde tek bir değeri olması gerekir.

class A {
  static late int deger;
  static final int deg = 3;
}

void main() {
  // Nesne oluşturmadan direkt kullanım
  int yeniDeger = A.deg;
  print("Sabit değer: $yeniDeger");
  
  // Static değişkeni değiştirebiliriz
  A.deger = 5;
  int yeniDeger2 = A.deger;
  print("Yeni değer: $yeniDeger2");
}

Final ile Static Arasındaki Fark

Bunu da öğrenmem gerekti: final dediğinizde o değişkeni bir kere atadıktan sonra bir daha değiştiremezsiniz. Yani bir nevi sabit gibi çalışır. Yukarıdaki örnekte deg değişkenini değiştirmeye çalışsaydım hata alırdım.

Neden Static Kullanıyoruz?

Araştırdığım kadarıyla static değişkenler şu durumlarda çok işe yarıyor:

  1. Sayaçlar: Kaç tane nesne oluşturuldu gibi
  2. Sabit değerler: Pi sayısı, vergi oranı gibi
  3. Yardımcı fonksiyonlar: Matematik işlemleri gibi

Örneğin bir hesap makinesi sınıfı yapıyorsanız:

class Hesaplama {
  static double topla(double a, double b) {
    return a + b;
  }
  
  static double cikar(double a, double b) {
    return a - b;
  }
}

void main() {
  double sonuc = Hesaplama.topla(5, 3);
  print("Sonuç: $sonuc"); // 8.0
}

Nesne oluşturmaya gerek yok, direkt Hesaplama.topla() diyerek kullanıyorsunuz.

Bugün Öğrendiklerim

Dart öğrenmeye başladığım ilk gün oldukça verimli geçti. Tip dönüşümleri ve static kavramları başta karmaşık gelse de pratik yapınca netleşti. Yarın enum yapıları ve composition konularına bakacağım.

Flutter yolculuğum böyle başladı. Umarım bu notlar sizin için de faydalı olur. Sorularınız olursa yorumlarda buluşalım!

Kaynaklar


Benimle iletişime geçin: