Tekrar - Generic Depolama
Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 69 / 110.
Görev
KolayCollections ve generics hakkında öğrendiğin her şeyi bir araya getiren genel bir depolama sistemi oluşturalım! Her türden öğeyi depolayabilen, bu öğeleri alabilen ve bir Storage<T> döngüsü kullanılarak üzerinde yineleme yapılabilen bir for-in sınıfı oluşturacaksın.
Kodunu iki dosyada düzenleyeceksin:
storage.dart: İki sınıftan oluşan genel depolama sistemini oluştur:- Depolanan öğeler üzerinde yinelemeyi etkinleştirmek için
StorageIterator<T>uygulayan birIterator<T>sınıfı - Aşağıdaki özelliklere sahip,
Storage<T>sınıfını genişleten birIterable<T>sınıfı:- Öğeleri dahili olarak tutacak özel bir liste
- Yeni bir öğeyi depolamak için bir
add(T item)yöntemi - Verilen dizindeki öğeyi döndüren bir
getAt(int index)yöntemi - Depolanan öğelerin sayısını döndüren bir
countalıcısı - Depolanan öğeler için bir
iteratordöndüren birStorageIteratoralıcısı
- Depolanan öğeler üzerinde yinelemeyi etkinleştirmek için
main.dart: Depolama dosyanı içe aktar ve farklı türlerle genel depolamayı göster:- Bir
Storage<String>oluştur ve üç şehir adı ekle:'Paris','Tokyo','Sydney' - Öğe sayısını yazdır
- 1. dizindeki öğeyi yazdır
- Her şehri kendi satırında yazdırmak için bir
for-indöngüsü kullan - Boş bir satır yazdır
- Bir
Storage<int>oluştur ve dört sayı ekle:100,200,300,400 - 150'den büyük değerleri filtrelemek için
whereyöntemini kullan, ardından ortaya çıkan listeyi yazdır
- Bir
Depolama sistemin, tam tür güvenliğini korurken her türle sorunsuz şekilde çalışmalıdır. Iterable sınıfını genişlettiği için where, map ve fold gibi güçlü yöntemlere otomatik olarak erişim kazanır!
Beklenen çıktı:
Count: 3
Item at 1: Tokyo
Paris
Tokyo
Sydney
[200, 300, 400]Kendin dene
import 'storage.dart';
void main() {
// TODO: Şehirler için bir Storage<String> oluşturun
// Üç şehir ekleyin: 'Paris', 'Tokyo', 'Sydney'
// TODO: Öğe sayısını yazdırın (format: "Count: X")
// TODO: 1. indeksteki öğeyi yazdırın (format: "Item at 1: X")
// TODO: Her şehri kendi satırında yazdırmak için bir for-in döngüsü kullanın
// TODO: Boş bir satır yazdırın
print('');
// TODO: Sayılar için bir Storage<int> oluşturun
// Dört sayı ekleyin: 100, 200, 300, 400
// TODO: 150'den büyük değerleri filtrelemek için where metodunu kullanın
// Ardından toList() kullanarak sonuç listesini yazdırın
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Nesne Tabanlı Programlamanın Temelleri
Harici DosyalarKütüphaneler ve İçe AktarmalarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar SözcüğüMetotlarÖrnek DeğişkenleriYapıcıların TemelleriTekrar - Basit Hesap Makinesi4Null Güvenliği
Null Güvenliğine GirişNullable ve Non-Nullable? ve ! OperatörleriLate Anahtar Sözcüğü ve Null GüvenliğiNull-Aware OperatörlerSınıflarda Null GüvenliğiTekrar - Kullanıcı Profili Sistemi7Soyut Sınıflar ve Arayüzler
Soyut SınıflarSoyut MetotlarDart'ta ArayüzlerÖrtük ArayüzlerUygulamak ve GenişletmekBirden Çok ArayüzTekrar - Şekil Hesaplayıcı10Koleksiyonlar ve Generics
List, Set, Map Genel BakışTür Güvenli KoleksiyonlarGeneric SınıflarGeneric MetotlarGeneric KısıtlamalarIterable ve IteratorTekrar - Generic Depolama2Dart'ta Yapıcılar
Varsayılan YapıcıAdlandırılmış YapıcılarBaşlatıcı ListeleriSabit YapıcılarFabrika YapıcılarıYönlendiren YapıcılarÖzet - Şekil Oluşturucu5Kapsülleme
Public ve Private Üyeler_ Ön Ek KuralıKütüphane Düzeyinde GizlilikGetter ve Setter DerinliğiBilgi GizlemeTekrar - Öğrenci Kayıtları8Mixin'ler
Mixin'lere GirişMixin OluşturmaBirden Çok Mixin KullanımıMixin'lerde on Anahtar SözcüğüMixin ve Kalıtım KarşılaştırmasıMixin ve Arayüz KarşılaştırmasıÖzet - Hayvan Sistemi11Özel Metotlar
toString() Geçersiz KılmahashCode & == Geçersiz KılmaComparable Arayüzücall() MetodunoSuchMethod Geçersiz KılmaÖzet - Özel Koleksiyon14Tasarım Desenleri Bölüm 1
Tasarım Desenlerine GirişSingleton DeseniFactory DeseniObserver DeseniStrategy Deseni3Sınıf Özellikleri
Örnek ve Static ÜyelerFinal ve Const AlanlarLate DeğişkenlerStatic Metotlar ve AlanlarGetter ve Setter'larÖzet - Banka Hesabı Yöneticisi6Kalıtım
Temel Kalıtımsuper Anahtar SözcüğüMetot Geçersiz Kılma@override Açıklamasıfinal Sınıf Anahtar SözcüğüKurucular ve KalıtımÖzet - Çalışan Hiyerarşisi9Çok Biçimlilik
Çok Biçimlilik TemelleriArayüzler Yoluyla Çok BiçimlilikÇalışma Zamanı Tür Denetimiis ve as OperatörleriCovariant Anahtar KelimesiTekrar - Ödeme İşlemcisi12Asenkron OOP
Future'ler ve async/awaitStream TemelleriStream DenetleyicileriAsenkron YapıcılarSınıf Metotlarında AsenkronlukÖzet - Veri Getirici15Tasarım Desenleri Bölüm 2
Komut DeseniAdaptör DeseniDekoratör DeseniŞablon Metot DeseniDurum DeseniBileşik DesenDepo DeseniKendi başına pratik yap: Online Dart derleyicisi