A robust, console-based banking application built to demonstrate core Object-Oriented Programming (OOP) and clean code principles.
- Secure PIN Verification System: Users get 3 attempts to log in with a 4-digit PIN before the card is simulated as "blocked".
- Encapsulation: Protects account details using private variables and safe access methods (getters).
- Interactive Menu: Smooth loop navigation allowing users to check balances, deposit funds, or withdraw money with real-time error validation.
- Object-Oriented Design: Separating object logic (BankAccount class) from execution logic (ATMSimulator class).
- Data Validation: Preventing negative transactions or over-drafting with strict operational checks.