Sınıflar ve Nesneler
Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 4 / 110.
Sınıflar ve nesneler farklı amaçlara hizmet eder. Bir sınıf bir taslaktır, nesne ise o taslaktan inşa ettiğiniz şeydir.
İşte örnek değişkenleri (instance variables) olan bir sınıf örneği:
class Dog {
String name = '';
String breed = '';
}Bir sınıf içinde bildirilen değişkenler (name ve breed gibi), o sınıftan oluşturulan her nesneye aittir. Örnek değişkenlerini daha sonra derinlemesine inceleyeceğiz.
Aynı sınıftan birden fazla nesne oluşturun:
Dog dog1 = Dog();
Dog dog2 = Dog();Her nesne bu değişkenler için kendi benzersiz değerlerine sahip olabilir:
dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';
dog2.name = 'Teemon';
dog2.breed = 'Labrador';Bir nesnenin değişkenlerine erişmek için nokta operatörünü . kullanın:
print('${dog1.name} is a ${dog1.breed}');
print('${dog2.name} is a ${dog2.breed}');Çıktı:
Nicky is a Siberian Husky
Teemon is a LabradorTemel Fark: Dog sınıfı tüm köpeklerin paylaştığı yapıyı tanımlarken, dog1 ve dog2 kendi benzersiz verilerine sahip bireysel nesnelerdir.
Görev
KolayStudent sınıfından iki öğrenci nesnesi oluşturmak ve değişkenlerini ayarlamak için kodu tamamlayın.
student.dart:Studentsınıfını içerir (kilitli)driver.dart: İki nesne oluşturun ve verilerini ayarlayın
Aşağıdaki değerleri ayarlayın:
student1: name değeri'Alice've grade değeri'A'student2: name değeri'Bob've grade değeri'B'
Kopya kağıdı
Bir sınıf (class), nesnelerin yapısını ve davranışını tanımlayan bir taslaktır. Bir nesne (object), bir sınıftan oluşturulan bir örnektir.
Örnek değişkenleri olan bir sınıf tanımlayın:
class Dog {
String name = '';
String breed = '';
}Bir sınıftan nesneler oluşturun:
Dog dog1 = Dog();
Dog dog2 = Dog();Nokta operatörünü . kullanarak nesne değişkenlerine erişin ve bunları değiştirin:
dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';
dog2.name = 'Teemon';
dog2.breed = 'Labrador';Nesne değişkenlerine erişin:
print('${dog1.name} is a ${dog1.breed}');
// Çıktı: Nicky is a Siberian HuskyKendin dene
import 'student.dart';
void main() {
// TODO: İki Student nesnesi oluşturun
// TODO: student1 için ad ve not ayarlayın (name: 'Alice', grade: 'A')
// TODO: student2 için ad ve not ayarlayın (name: 'Bob', grade: 'B')
print('${student1.name} has grade ${student1.grade}');
print('${student2.name} has grade ${student2.grade}');
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarKütüphaneler ve ImportlarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar KelimesiMetotlarÖrnek DeğişkenleriConstructor TemelleriÖzet - Basit Hesap Makinesi4Null Safety
Null Safety'ye GirişNullable ve Non-Nullable? ve ! OperatörleriLate Anahtar Kelimesi ve Null SafetyNull-Aware OperatörleriSınıflarda Null SafetyÖzet - Kullanıcı Profili Sistemi7Soyut Sınıflar ve Arayüzler
Soyut SınıflarSoyut MetotlarDart'ta ArayüzlerÖrtük ArayüzlerUygulama vs. GenişletmeÇoklu ArayüzlerÖzet - Şekil Hesaplayıcı10Koleksiyonlar ve Generic'ler
List, Set, Map Genel BakışTip Güvenli KoleksiyonlarGeneric SınıflarGeneric MetotlarGeneric KısıtlamalarIterable ve IteratorÖzet - Generic Depolama2Dart'ta Yapıcılar
Varsayılan Yapıcıİsimlendirilmiş Yapıcılarİlklendirme ListeleriSabit YapıcılarFabrika YapıcılarıYönlendiren YapıcılarÖzet - Şekil Oluşturucu5Kapsülleme
Public ve Private Üyeler_ Öneki KuralıKütüphane Düzeyinde GizlilikGetter ve Setter DetaylarıBilgi GizlemeÖzet - Öğrenci Kayıtları8Mixin'ler
Mixin'lere GirişMixin OluşturmaBirden Fazla Mixin KullanımıMixin'lerde on Anahtar KelimesiMixin vs KalıtımMixin vs ArayüzÖzet - Hayvan Sistemi11Özel Metotlar
toString() OverridehashCode ve == OverrideComparable Arayüzücall() MetodunoSuchMethod OverrideÖzet - Özel Koleksiyon14Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı17Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakter SistemiAraç Kiralama Servisi3Sınıf Özellikleri
Instance ve Statik ÜyelerFinal ve Const AlanlarLate DeğişkenlerStatik Metotlar ve AlanlarGetters ve SettersÖzet - Banka Hesabı Yöneticisi6Kalıtım
Temel Kalıtımsuper Anahtar KelimesiMetot Ezme@override Anotasyonufinal Sınıf Anahtar KelimesiYapıcı Metotlar ve KalıtımÖzet - Çalışan Hiyerarşisi9Çok Biçimlilik
Çok Biçimlilik TemelleriInterface'ler ile Çok BiçimlilikÇalışma Zamanı Tip Kontrolüis ve as OperatörleriCovariant Anahtar KelimesiÖzet - Ödeme İşlemcisi12Asenkron OOP
Futures ve async/awaitStream TemelleriStream Controller'larAsenkron KurucularSınıf Metotlarında Asenkron KullanımıÖzet - Data Fetcher15Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıRepository Kalıbı