31- Dart Getter ve Setter Fonksiyonlar

Yazımızın içeriğini video olarak ta izleyebilirsiniz.

Dart Flutter Dersleri Getter ve Setter Fonksiyonlar

Bir önceki konumuzda private ve public erişilebilirlik türlerini gördük ve nasıl kullanıldığını anlamak üzere örnekler yapmıştık. Bu konuya geçmeden önce erişilebilirlik türleri konusunda eksiğiniz varsa lütfen önce o konuya bakın.

Kısaca hatırlatmak gerekirse biz bir sınıf içerisinde değişkenler ve fonksiyonlar oluşturuyorduk. Oluşturduğumuz değişkenler ve fonksiyonlar varsayılan olarak publicti yani tanımladığımız sınıf dışından erişilebiliyorlardı. Eğer biz değişkenlerimizi veya fonksiyonlarımızı private tanımlarsak artık sınıf dışından erişilemez kılıyorduk. Bu tanımlamayı da değişkenimizin veya fonksiyonumuzun önüne _ alt çizgi koyarak yapıyorduk.

Biz private yaptığımız değişkenlere sınıf dışından erişip sadece okunsun ama değer yazılmasın ya da tam tersi yazılabilsin ama okunmasın isteyebiliriz. İşte burada devreye setter ve getter giriyor.

Daha önce getter ve setter fonksiyonların işlevini yapan fonksiyonlar yapıp istediğimizi elde etmiştik. Şimdi bunu olması gereken gibi getter ve setter ile yapacağız.

Getter ları private olan değişkenlerimizi sınıf dışından okumak için, setter fonksiyonumuzu ise değişkenimize değer atamak için kullanacağız.

Daha önce bir öğrenci sınıfı oluşturup öğrenci numarasını private yapmıştık. Şimdi o örneğimiz üzerinden gidelim ve getter, setter nasıl kullanılıyor bir bakalım.

Önceki örneğimizi hatırlayalım;

class Ogrenci {
  String? ad;
  String? soyAd;
  int? _no;

  Ogrenci(this.ad, this.soyAd, this._no);

  int noDegeri() {
    return _no!;
    //getter yerine geçecek bir fonksiyon yazdık
    //bu fonksiyon sayesinde no değerini okumuştuk.
  }

  void noDegistir(int no) {
    this._no = no;
    //setter yerine geçecek bir fonksiyon yazdık
    //bu fonksiyon sayesinde no değişkenine değer atadık. 
  }
}

Yukarıda tanımladığımız sınıfı main fonksiyonu içerisinde aşağıdaki gibi kullandık.

import 'nesne-public-private-class.dart';

void main(List<String> args) {
  Ogrenci ogr1 = Ogrenci("mehmet", "eser", 182);

  ogr1.noDegistir(152); //setter 
  print(ogr1.noDegeri()); //getter
}

Getter ve Setter nasıl tanımlanır?

Dart Flutter Dersleri Get ve Set Kullanımı

class Ogrenci {
  String ad;
  String soyAd;
  int _no;

  Ogrenci(this.ad, this.soyAd, this._no);

  int get no {
    return _no;
    //getter tanımladık. Parantezleri yok.
    //getter lar değer almazlar
  }

  set no(int no) {
    _no = no;
    //setter tanımladık. Dışarıdan vereceğimiz
    //değeri _no değişkenine yazacak
  }
}
import 'nesne-public-private-class.dart';

void main(List<String> args) {
  Ogrenci ogr1 = Ogrenci("mehmet", "eser", 182);

  ogr1.no = 200; //Setter sayesinde direkt değişkene ulaşıp değer atadık
  print(ogr1.no); //Getter sayesinde direkt değişken değerini okuduk.
 
}

Yorum bırakın

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