Dart
Getter ve setter
get ve set ile kontrollü erişim öğrenirsin.
get ve set
Dart, private alanlara kontrollü erişim için getter ve setter sunar. get ve set anahtar kelimeleriyle yazılır; çağrımda parantez kullanılmaz.
Örnek: double get balance => _balance; set balance(double value) { if (value < 0) return; _balance = value; }. Burada balance hem okunabilir hem yazılabilir bir erişimcidir. Okuma a.balance, yazma a.balance = 100 biçiminde yapılır. Setter içindeki koşul, negatif değerlerin yazılmasını engeller. Bu yapı, alanı doğrudan açmadan doğrulama eklemenin temiz yoludur.
Setter ile doğrulama
Setter, yazma işlemine araya girer; böylece değer doğrulaması yapılabilir. Geçersiz değer girildiğinde atama engellenir ya da düzeltilir.
Örnek: set balance(double value) { if (value < 0) return; _balance = value; }. Burada negatif bir değer yazılmak istenirse return ile işlem durdurulur ve _balance değişmez. Bu sayede kullanıcı hatası önlenir; nesne her zaman tutarlı kalır. Yalnızca okunan alanlar için setter yazılmaz; bu durumda alan salt okunur olur ve dışarıdan değiştirilemez.
Uygulama Account'a getter ve setter ekle
Account sınıfını tanımla; double _balance private alanını ve Account(this._balance) yapıcısını ekle. double get balance => _balance; getter'ını ve set balance(double value) { if (value < 0) return; _balance = value; } setter'ını yaz. main içinde var a = Account(100); ile örnek oluştur, print(a.balance) ile yazdır, a.balance = 200 ile güncelle ve tekrar print(a.balance) çağrısı yap.
Örnek çözümü göster
// Account sınıfını tanımla
class Account {
double _balance;
Account(this._balance);
double get balance => _balance;
set balance(double value) {
if (value < 0) return;
_balance = value;
}
}
void main() {
var a = Account(100);
print(a.balance);
a.balance = 200;
print(a.balance);
}
Kendini test et
-
getter bildirimini tamamla
double ____ balance => _balance;
Cevabı göster
double get balance => _balance;
-
set balance(double value) ne işe yarar?
- Yalnızca değeri okur
- Static alan tanımlar
- Yazma işlemini doğrulama ile sarar
- Yapıcıyı çağırır
Cevabı göster
Yazma işlemini doğrulama ile sarar — Setter, yazmaya araya girer; doğrulama ekler.
-
Erişimci parçalarını eşle
- get
- Okuma erişimcisi
- set
- Yazma erişimcisi
- _balance
- Private alan
Sıradaki ders: final ve const alan