İ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 Sınıf tanımlaması
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