Özet - Banka Hesabı Yöneticisi
Coddy'nin Java Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 14 / 87.
Görev
KolayÖğrendiğin kapsülleme, erişim belirleyicileri, getter'lar, setter'lar ve BankAccount anahtar sözcüğüyle ilgili her şeyi bir araya getiren eksiksiz bir final sistemi oluşturalım.
Kodunu düzenlemek için iki dosya oluşturacaksın:
BankAccount.java: Hassas finansal verileri koruyan güvenli bir banka hesabı sınıfı tasarla:- Hesap oluşturulduktan sonra asla değiştirilemeyen, değişmez bir hesap numarası
- 0.0 ile başlayan ve yalnızca denetimli metotlar aracılığıyla değiştirilebilen private bir bakiye
- Alınabilen ancak doğrudan değiştirilemeyen private bir hesap sahibi adı
- Hesap numarasını ve hesap sahibi adını alan bir kurucu
- Hesap numarası için bir getter
- Hesap sahibi adı için bir getter
- Bakiye için bir getter
- Yalnızca miktar pozitifse bakiyeye ekleme yapan ve başarılı işlem için
deposit(double amount), reddedilirsetruedöndüren birfalsemetodu - Yalnızca miktar pozitifse VE yeterli bakiye varsa bakiyeden düşme yapan ve başarılı işlem için
withdraw(double amount), reddedilirsetruedöndüren birfalsemetodu - Şunu döndüren bir
getAccountSummary()metodu:"Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]"(bakiye 2 ondalık basamakla biçimlendirilmiş)
Main.java: Bir BankAccount oluştur ve bir dizi işlem gerçekleştir. Beş girdi alacaksın: hesap numarası, hesap sahibi adı, para yatırma miktarı, ilk para çekme miktarı ve ikinci para çekme miktarı. Dört satır yazdır:- Para yatırma işleminin sonucu:
Deposit: trueveyaDeposit: false - İlk para çekme işleminin sonucu:
Withdraw 1: trueveyaWithdraw 1: false - İkinci para çekme işleminin sonucu:
Withdraw 2: trueveyaWithdraw 2: false - Son hesap özeti
- Para yatırma işleminin sonucu:
Beş girdiyi şu sırayla alacaksın: accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).
Bakiyeyi 2 ondalık basamakla biçimlendirmek için String.format("%.2f", balance) kullanabilirsin.
Kendin dene
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Girdileri oku
String accountNumber = scanner.nextLine();
String ownerName = scanner.nextLine();
double depositAmount = scanner.nextDouble();
double withdrawAmount1 = scanner.nextDouble();
double withdrawAmount2 = scanner.nextDouble();
// TODO: accountNumber ve ownerName ile bir BankAccount nesnesi oluşturun
// TODO: Para yatırma işlemini gerçekleştirin ve sonucu "Deposit: true" veya "Deposit: false" olarak yazdırın
// TODO: İlk para çekme işlemini gerçekleştirin ve sonucu "Withdraw 1: true" veya "Withdraw 1: false" olarak yazdırın
// TODO: İkinci para çekme işlemini gerçekleştirin ve sonucu "Withdraw 2: true" veya "Withdraw 2: false" olarak yazdırın
// TODO: Hesap özetini yazdırın
}
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar KelimesiMetotlarAlanlar (Öznitelikler)Yapıcı MetotYapıcı Metot Aşırı YüklemeÖzet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtım (extends)super Anahtar KelimesiMetot Geçersiz Kılma (@Override)Yapıcı Metot ZincirlemeObject SınıfıTekli ve Çok Seviyeli KalıtımNeden Çoklu Sınıf Kalıtımı Yok?Özet - Çalışan Hiyerarşisi7Özel Metotlar ve Object Sınıfı
toString() Metoduequals() ve hashCode()clone() MetoducompareTo() ve ComparableComparator ArayüzüÖzet - Özel Sıralama2Erişim Belirleyiciler ve Kapsülleme
Erişim Seviyelerine Genel BakışGetter ve Setter MetotlarıBilgi Gizlemefinal Anahtar KelimesiÖzet - Banka Hesabı Yöneticisi5Polimorfizm
Metot Aşırı Yükleme TemelleriMetot Geçersiz Kılma (Çalışma Zamanı)Upcasting ve Downcastinginstanceof OperatörüSoyut Sınıflar ve MetotlarÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon vs KalıtımAgregasyon vs KompozisyonDahili, Yuvalanmış ve Anonim SınıflarEnum'lar ve Enum MetotlarıRecords (Java 16+)Sealed Classes (Java 17+)11Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıBuilder KalıbıObserver KalıbıStrategy Kalıbı14Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi3Sınıf Özellikleri ve Statik Üyeler
Instance ve Statik DeğişkenlerStatik MetotlarStatik BloklarSabitler (static final)Özet - Sayaç ve Utility6Arayüzler ve Soyut Sınıflar
Arayüzlere GirişArayüzleri UygulamaÇoklu Arayüz UygulamaArayüzlerde Default ve StaticSoyut Sınıflar ve ArayüzlerFonksiyonel ArayüzlerÖzet - Ödeme Sistemi9Generics
Generics'e GirişGeneric SınıflarGeneric MetotlarSınırlandırılmış Tip ParametreleriWildcard'lar (?, extends, super)Özet - Generic Container12Tasarı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ıYineleyici KalıbıKendi başına pratik yap: Online Java derleyicisi