27- Dart Sınıf – Class – Model | Nesne – Object Oluşturma Örnekleri

İlgili yazı: Nesne Yönelimli Programlamaya Giriş

Burada kısaca hatırlamak için özetlersek;

Oluşan bu soyut taslaklara sınıf (class) deriz.

Oluşan soyut sınıflardan aldığımız örneklere nesne (object) diyoruz. Nesneler sınıfların somutlaştırılmış halidir.

Sınıflarımızın içerisine değişken, fonksiyonlar tanımlayabiliriz.

Sınıf tanımlamalarımızı yaparken baş harfini büyük yapmak doğrudur. Şart değildir, genel kullanımı bu şekildedir. örneğin class Ogrenci { }

Dart Nesne Yönelimli Programlama

Dart Sınıf tanımlaması

dart nesne tanımlama

Bir öğrenci tanımladığımızı farzedelim. Öğrencinin neyi olur? Adı, Soyadı, Notları vb.. bir sürü bilgisi olablir.

void main(List<String> args) {}

class Ogrenci {
  String? adi; 
  String? soyAdi;
  int? notu;
  bool? gectimi;
}
// Değişken tanımlarken dikkat ettiyseniz soru işareti koyduk. 
//Sebebi Dart Null Safety özelliği. Daha sonra değer vereceğiz
//sen şimdilik null ol demek istedik. Soru işareti koymasaydık
//varsayılan olarak bir değer atamamız gerekirdi. 
//alttaki örnekte varsayılan değerler atadık. 
//alttaki örnekte içerisine bir fonksiyon ekledik

void main(List<String> args) {}

class Ogrenci {
  String adi = "";
  String soyAdi = "";
  int notu = 0;
  bool gectimi = true;
 
void barsarilimi(){
    print("basarili bir öğrenci")
  }

}

Taslak sınıftan öğrenci nesnesi üretelim

void main(List<String> args) {

//instance
  Ogrenci ogrenci1 = Ogrenci();
 //ogrenci1 nesnesini oluşturduk

  var ogrenci2 = Ogrenci(); 
// ogrenci2 nesnesini oluşturduk
// var ile örneğimizi/nesnemizi oluşturduk

}

class Ogrenci {  
//taslak sınıfımız

//instance variable
  String adi = ""; 
  String soyAdi = "";
  int notu = 0;
  bool gectimi = true;

  void barsarilimi() {
    print("basarili bir öğrenci");
  }
}
void main(List<String> args) {
//instance
  Ogrenci ogrenci1 = Ogrenci();
  ogrenci1.adi = "mehmet";
  ogrenci1.soyAdi = "eser";
  ogrenci1.notu = 77;
  ogrenci1.gectimi = true;

  var ogrenci2 = Ogrenci();
  ogrenci2.adi = "zeynep";
  ogrenci2.soyAdi = "eser";
  ogrenci2.notu = 82;
  ogrenci2.gectimi = true;
}

class Ogrenci {
//taslak sınıfımız

//instance variable
  String adi = "";
  String soyAdi = "";
  int notu = 0;
  bool gectimi = true;

  void barsarilimi() {
    print("basarili bir öğrenci");
  }
}

Dart Class (sınıf) Araba Örneği

void main(List<String> args) {
  var bmw = Araba(); //araba sınıfından bir nesne ürettik
  bmw.renk = "mavi"; // rengine mavi atadık
  bmw.calistir(); //tanımladığımız metodu çağırdık
  bmw.durdur(); //tanımladığımız metodu çağırdık
}

class Araba {
  String? renk;
  int? hiz;
  bool? calisiyormu;

  void calistir() {
    hiz = 120;
    calisiyormu = true;
    print(
        "arabanın rengi $renk arabanın hızı $hiz ve çalışıyor mu $calisiyormu");
  }

  void durdur() {
    hiz = 0;
    calisiyormu = false;
    print(
        "arabanın rengi $renk arabanın hızı $hiz ve çalışıyor mu $calisiyormu");
  }
}

//SONUÇ 
arabanın rengi mavi arabanın hızı 120 ve çalışıyor mu true
arabanın rengi mavi arabanın hızı 0 ve çalışıyor mu false
void main(List<String> args) {
  var bmw = Araba(); //araba sınıfından bir nesne ürettik
  bmw.renk = "mavi"; // rengine mavi atadık
  bmw.calistir(); //tanımladığımız metodu çağırdık
  bmw.bilgiAl();
  bmw.hizlan(20);
  bmw.bilgiAl();
  bmw.hizlan(40);
  bmw.bilgiAl();
  bmw.yavasla(10);
  bmw.bilgiAl();
}

class Araba {
  String renk = "";
  int hiz = 0;
  bool calisiyormu = true;

  void calistir() {
    hiz = 0;
    calisiyormu = true;
  }

  void durdur() {
    hiz = 0;
    calisiyormu = false;
  }

  void hizlan(int kackm) {
    hiz = hiz + kackm;
  }

  void yavasla(int kackm) {
    hiz = hiz - kackm;
  }

  void bilgiAl() {
    print(
        "arabanın rengi $renk arabanın hızı $hiz ve çalışıyor mu $calisiyormu");
  }
}

//SONUÇ 
arabanın rengi mavi arabanın hızı 0 ve çalışıyor mu true
arabanın rengi mavi arabanın hızı 20 ve çalışıyor mu true
arabanın rengi mavi arabanın hızı 60 ve çalışıyor mu true
arabanın rengi mavi arabanın hızı 50 ve çalışıyor mu true

Yorum bırakın

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