Yazımızın içeriğini video olarak ta izleyebilirsiniz.
Dart Fonksiyonel Sınıflar
Buraya kadar bir sürü sınıf ve nesne örneği yaptık. Bunlar öğrenciler, çalışanlar, veya bir şekil sınıfı oluşturduk.
Bunları oluştururken önce bir model oluşturduk yani model sınıfı ve bu sınıftan nesneler ürettik.
Sınıflar her zaman model sınıf ilişkisi içerisinde değildirler.
Mesela sınıflarımızı aynı türden fonksiyonlarımızı gruplamak için de kullanabiliriz. Örneğin bir matematik sınıfı oluşturup, dört işlem, toplama, çıkarma, bölme ve çarpma fonksiyonlarımızı aynı sınıfta gruplayabiliriz.
Yine aynı şekilde programımızda değişmeyecek olan sabit değerleri bir const olarak sınıf içerisine tanımlayabiliriz.
Örneklendirelim;
Fonksiyonel bir sınıf oluşturalım. Matematik sınıfımız olsun ve içerisine matematik ile ilgili fonksiyonları tanımlayalım. (toplama, çıkarma, bölme, çarpma) Bu fonksiyonları kullanmak için önce bir nesne üretmemiz anlamsız olacaktır. Çünkü bu sınıftan ne kadar nesne üretirsek üretelim aynı sonucu verecektir. Örneğin mat1, mat2, mat3 nesneleri ürettik. mat1.topla(4,6) ile mat2.topla(4,6) aynı sonucu üretecektir.
Yine matematik sınıfımız içerisine const pi=3.14 değişkeni oluştursak, dışarıdan buna erişmek için bir nesne oluşturmak yine anlamsız olacaktır.
Bu gibi durumlarda sınıfımız içerisindeki değişkenlerimize ve fonksiyonlarımıza direkt ulaşabilmek için static tanımlama yapmamız gerekmektedir.
Dart Static Sınıf Tanımlama;
Sınıf içerisinde oluşturduğumuz değişkenlerin ve fonksiyonların başına static anahtar kelimesini yazarak oluşturabiliriz.
Static Sınıf Örneği;
class Matematik {
static const pi = 3.14;
//static değişken oluşturduk
static double toplama(double sayi1, double sayi2) {
return sayi1 + sayi2;
//static fonksiyon oluşturduk
}
static double cikarma(double sayi1, double sayi2) {
return sayi1 - sayi2;
//static fonksiyon oluşturduk
}
static double bolme(double sayi1, double sayi2) {
return sayi1 / sayi2;
//static fonksiyon oluşturduk
}
static double carpma(double sayi1, double sayi2) {
return sayi1 * sayi2;
//static fonksiyon oluşturduk
}
}
Static Sınıflara Nasıl Erişilir?
Static sınıflara main içerisinden nesne oluşturmadan direkt olarak erişebiliyoruz. Aşağıdaki örneğimizi inceleyelim.
import 'matematik.dart';
void main(List<String> args) {
print(Matematik.pi);
print(Matematik.bolme(5, 4));
print(Matematik.carpma(5, 4));
print(Matematik.toplama(5, 4));
print(Matematik.cikarma(5, 4));
}
/*
SONUC
3.14
1.25
20.0
9.0
1.0
*/