Dart Dilinde this Anahtar Kelimesi ve Özellikleri
Dart dilinde this anahtar kelimesi, aynı ada sahip sınıf (class) nitelikleri (attributes) ve parametreler (parameters) arasındaki belirsizliği ortadan kaldırmak için kullanılmaktadır.
Dart Dilinde this Anahtar Kelimesi
Dart’ta this anahtar kelimesi genel olarak aşağıdaki durumlar için kullanılmaktadır:
- Geçerli sınıfın örnek değişkenini belirtmek için kullanılabilir
- Geçerli sınıf yapıcısını çağırmak veya başlatmak için kullanılabilir
- Metot çağrısında bir argüman olarak iletilebilir.
- Yapıcı metot çağrısında argüman olarak iletilebilir.
- Geçerli sınıf yöntemini çağırmak için kullanılabilir.
- Geçerli sınıf örneğini döndürmek için kullanılabilir.
void main() {
Araba toyota = Araba (2020, "Mavi");
toyota.arabaBilgileri();
}
class Araba {
int? model;
String? renk;
Araba (int model, String renk){
this.model = model;
this.renk = renk;
}
void arabaBilgileri(){
print("Arabanın özellikleri");
print("Arabanın modeli: $model");
print("Arabanın rengi: $renk");
}
}
Çıktı:
Arabanın özellikleri
Arabanın modeli: 2020
Arabanın rengi: Mavi
Yukarıdaki örnekte Araba sınıfında yer alan parametreler ile o an oluşturulan nesnenin sahip olduğu parametrelerin ismi aynı olması nedeniyle this anahtar kelimesini kullanmak zorunda kaldık.
Yukarıdaki örneği daha doğru bir şekilde yazacak olursak:
void main() {
Araba toyota = Araba (2020, "Mavi");
toyota.arabaBilgileri();
}
class Araba {
int? model;
String? renk;
Araba (this.model, this.renk){}
void arabaBilgileri(){
print("Arabanın özellikleri");
print("Arabanın modeli: $model");
print("Arabanın rengi: $renk");
}
}
Çıktı:
Arabanın özellikleri
Arabanın modeli: 2020
Arabanın rengi: Mavi
Eğer Araba kurucu metodumuzdaki parametre ismi farklı olsaydı this anahtar kelimesinin kullanılmasına gerek kalmayacaktı. Ancak o zaman da değerleri birbirine atamamız gerekecekti:
void main() {
Araba toyota = Araba (2020, "Mavi");
toyota.arabaBilgileri();
}
class Araba {
int? model;
String? renk;
// parametre adları değişti bu yüzden this kullanılmasına gerek yok
Araba (int modelTarihi, String arabaRengi){
model = modelTarihi;
renk = arabaRengi;
}
void arabaBilgileri(){
print("Arabanın özellikleri");
print("Arabanın modeli: $model");
print("Arabanın rengi: $renk");
}
}
Çıktı:
Arabanın özellikleri
Arabanın modeli: 2020
Arabanın rengi: Mavi
Kodu çalıştırmak için: DartPad