Özet - Banka Hesabı Yöneticisi
Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 22 / 110.
Görev
KolayBu bölümde öğrendiğiniz tüm sınıf özelliği kavramlarını bir araya getiren bir banka hesabı yönetim sistemi kuralım. Bireysel hesap verilerini takip ederken aynı zamanda banka genelindeki istatistikleri de tutan bir sistem oluşturacaksınız.
Kodunuzu iki dosya halinde düzenleyeceksiniz:
bank_account.dart: Bireysel hesapları yöneten ve genel banka istatistiklerini takip eden birBankAccountsınıfı tanımlayın. Sınıfınız şunları içermelidir:- Oluşturulduktan sonra değiştirilemeyen bir
final String accountNumber - Hesap sahibinin adı için bir
String holderName 0.0ile başlayan özel (private) birdouble _balancealanı- Kaç tane hesap olduğunu takip etmek için
0ile başlayan birstatic int totalAccounts - Banka genelinde yapılan tüm para yatırma işlemlerini takip etmek için
0.0ile başlayan birstatic double totalDeposits accountNumberveholderNamealanlarını alan vetotalAccountsdeğerini artıran bir yapıcı (constructor)- Mevcut bakiyeyi döndüren bir
balancegetter metodu - Yalnızca miktar pozitifse bakiyeye ekleme yapan ve başarılı olduğunda
totalDepositsdeğerine de ekleme yapan birdeposit(double amount)metodu - Yalnızca miktar pozitifse ve mevcut bakiyeyi aşmıyorsa bakiyeden çıkarma yapan bir
withdraw(double amount)metodu - Hesap detaylarını yazdıran bir
displayInfo()metodu - Banka genelindeki istatistikleri içeren bir dize (string) döndüren statik bir
getBankStats()metodu
- Oluşturulduktan sonra değiştirilemeyen bir
main.dart: Banka hesabı sınıfınızı içe aktarın ve sistemi demo edin:'Alice'için'ACC001'numaralı bir hesap oluşturun'Bob'için'ACC002'numaralı bir hesap oluşturun- Alice'in hesabına
500.0yatırın - Bob'un hesabına
300.0yatırın - Alice'in hesabından
150.0çekin - Bob'un hesabından
1000.0çekmeyi deneyin (yetersiz bakiye nedeniyle dikkate alınmamalıdır) - Alice'in hesabına
-50.0yatırmayı deneyin (negatif miktar nedeniyle dikkate alınmamalıdır) - Önce Alice'in hesabı, ardından Bob'un hesabı için
displayInfo()metodunu çağırın BankAccount.getBankStats()kullanarak banka istatistiklerini yazdırın
displayInfo() metodu şu formatta yazdırmalıdır:
Account [accountNumber] | Holder: [holderName] | Balance: $[balance]getBankStats() metodu şunu döndürmelidir:
Bank Stats - Total Accounts: [totalAccounts] | Total Deposits: $[totalDeposits]Beklenen çıktı:
Account ACC001 | Holder: Alice | Balance: $350.0
Account ACC002 | Holder: Bob | Balance: $300.0
Bank Stats - Total Accounts: 2 | Total Deposits: $800.0Kendin dene
import 'bank_account.dart';
void main() {
// TODO: 'Alice' için 'ACC001' numaralı bir hesap oluşturun
// TODO: 'Bob' için 'ACC002' numaralı bir hesap oluşturun
// TODO: Alice'in hesabına 500.0 yatırın
// TODO: Bob'un hesabına 300.0 yatırın
// TODO: Alice'in hesabından 150.0 çekin
// TODO: Bob'un hesabından 1000.0 çekmeyi deneyin (göz ardı edilmeli)
// TODO: Alice'in hesabına -50.0 yatırmayı deneyin (göz ardı edilmeli)
// TODO: Alice'in hesabında displayInfo() metodunu çağırın
// TODO: Bob'un hesabında displayInfo() metodunu çağırın
// TODO: BankAccount.getBankStats() kullanarak banka istatistiklerini yazdırın
}
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ı