Dart Programlama
İletişim
  • GİRİŞ (INTRODUCTION)
    • Dart'a Giriş
  • SÖZDİZİMİ TEMELLERİ (SYNTAX BASICS)
    • Değişkenler (Variables)
    • Operatörler (Operators)
    • Yorum Satırları (Comments)
    • Meta Veri (Metadata)
    • Kütüphaneler & İçe Aktarma (Libraries & Imports)
  • FONKSİYONLAR (FUNCTIONS)
    • Fonksiyonlar (Functions)
  • TÜRLER (TYPES)
    • Dahili Tipler (Build-in Types)
    • Kayıtlar (Records)
    • Koleksiyonlar (Collections)
    • Jenerikler (Generics)
    • Veri Türü Tanımlama (Typedef)
  • Desenler (Patterns)
    • Desenler (Patterns)
  • Kontrol Akışı (Control Flow)
    • Döngüler (Loops)
    • Dallar (Branches)
  • HATA YÖNETİMİ (ERROR HANDLING)
    • Hata Yönetimi (Error Handling)
  • Sınıflar ve Nesneler (Classes and Objects)
    • Sınıflar (Classes)
    • Yapıcılar (Constructors)
    • Metodlar (Methods)
    • Sınıfı Uzatma (Extending a Class)
    • Katma (Mixin)
    • Enumerasyon (Enums)
    • Genişletme Methodları (Extension Methods)
    • Genişletme Türleri (Extension Types)
  • SINIF MODİFİKATÖRLERİ (Class Modifiers)
    • Sınıf Modifikatörleri (Class Modifiers)
Powered by GitBook
On this page
  • Örnek Metodlar (Instance Methods)
  • Operatörler (Operators)
  • Getters ve Setters
  • Soyut Metodlar (Abstract Methods)

Was this helpful?

  1. Sınıflar ve Nesneler (Classes and Objects)

Metodlar (Methods)

Metodlar, bir nesnenin davranışını sağlayan fonksiyonlardır.

Örnek Metodlar (Instance Methods)

Nesne üzerindeki örnek metodlar, örnek değişkenlere ve this anahtar kelimesine erişebilir. Aşağıdaki örnekteki digerineUzaklik() metodu bir örnek metod örneğidir:

import 'dart:math';

class Nokta {
  final double x;
  final double y;

  Nokta(this.x, this.y);

  double digerineUzaklik(Nokta diger) {
    var dx = x - diger.x;
    var dy = y - diger.y;
    return sqrt(dx * dx + dy * dy);
  }
}

Operatörler (Operators)

Operatörler, özel isimlere sahip örnek metodlardır. Dart, aşağıdaki isimlere sahip operatörleri tanımlamanıza izin verir:

< | + | | | >>> > | / | ^ | [] <= | ~/ | & | []= >= | * | << | ~ - | % | >> | ==

Not

Bazı operatörlerin, != gibi, listede olmadığını fark etmiş olabilirsiniz. Bu, onların sadece sözdizimsel şeker olduğu anlamına gelir. Örneğin, e1 != e2 ifadesi, !(e1 == e2) için sözdizimi şekeridir.

Aşağıdaki örnek, vektör toplama (+), çıkarma (-) ve eşitlik (==) operatörlerini tanımlar:

class Vektor {
  final int x, y;

  Vektor(this.x, this.y);

  Vektor operator +(Vektor v) => Vektor(x + v.x, y + v.y);
  Vektor operator -(Vektor v) => Vektor(x - v.x, y - v.y);

  @override
  bool operator ==(Object diger) =>
      diger is Vektor && x == diger.x && y == diger.y;

  @override
  int get hashCode => Object.hash(x, y);
}

void main() {
  final v = Vektor(2, 3);
  final w = Vektor(2, 2);

  assert(v + w == Vektor(4, 5));
  assert(v - w == Vektor(0, 1));
}

Getters ve Setters

Getters ve setters, bir nesnenin özelliklerine okuma ve yazma erişimi sağlayan özel metodlardır. Her örnek değişkeninin zaten varsayılan bir getter'ı ve uygunsa bir setter'ı vardır. Getters ve setters'ları kullanarak ek özellikler oluşturabilirsiniz. Bunun için get ve set anahtar kelimelerini kullanabilirsiniz:

class Dikdortgen {
  double sol, ust, genislik, yukseklik;

  Dikdortgen(this.sol, this.ust, this.genislik, this.yukseklik);

  // Hesaplanmış iki özellik tanımla: sag ve alt.
  double get sag => sol + genislik;
  set sag(double deger) => sol = deger - genislik;
  double get alt => ust + yukseklik;
  set alt(double deger) => ust = deger - yukseklik;
}

void main() {
  var dikdortgen = Dikdortgen(3, 4, 20, 15);
  assert(dikdortgen.sol == 3);
  dikdortgen.sag = 12;
  assert(dikdortgen.sol == -8);
}

Getters ve setters kullanarak, örnek değişkenleri metodlarla sarmadan başlayabilir ve daha sonra değiştirmeniz gerekmez.

Not

Artırma (++) gibi operatörler, beklenen şekilde çalışır, getter açıkça tanımlanmış olsa da olmasa da. Beklenmeyen yan etkileri önlemek için, operatör getter'ı tam olarak bir kez çağırır ve değerini geçici bir değişkende saklar.

Soyut Metodlar (Abstract Methods)

Örnek, getter ve setter metodları soyut olabilir, yani bir arabirim tanımlar ancak uygulamasını başka sınıflara bırakır. Soyut metodlar yalnızca soyut sınıflarda veya mixin'lerde bulunabilir. Bir metodun soyut olması için, bir metot gövdesi yerine bir noktalı virgül (;) kullanın:

abstract class Yapan {
  // Örnek değişkenleri ve metodları tanımla...

  void birSeyYap(); // Soyut bir metod tanımla.
}

class EtkiliYapan extends Yapan {
  void birSeyYap() {
    // Metodu burada soyut olmaktan çıkaracak bir uygulama sağla...
  }
}

PreviousYapıcılar (Constructors)NextSınıfı Uzatma (Extending a Class)

Last updated 1 year ago

Was this helpful?