当前位置: 首页 > news >正文

【Java】—— Java面向对象基础:使用Java模拟银行账户与客户交易系统

目录

账户类(Account)

客户类(Customer)

测试类(CustomerTest)

运行结果


        在今天的博文中,我们将通过Java编程语言来模拟一个简单的银行账户与客户交易系统。这个系统将包括两个主要类:Account(账户类)和Customer(客户类),以及一个测试类CustomerTest来演示如何使用这些类。

账户类(Account)

        首先,我们创建一个Account类来模拟银行账户。这个类包含三个私有属性:账号ID(id)、余额(balance)和年利率(annualInterestRate。此外,该类还提供了相应的getter和setter方法来访问和修改这些属性。

        我们还实现了两个重要的方法:deposit(double amount)用于存款,withdraw(double amount)用于取款。这两个方法都进行了简单的验证,以确保取款金额不超过账户余额,并且存款金额大于0


public class Account {// 属性private int id;             //账号idprivate double balance;     // 余额private double annualnterestRate;   // 年利率// 构造器public Account(int i, double b, double a) {id = i;balance = b;annualnterestRate = a;}public void setId(int i) {id = i;}public void setBalance(double b) {balance = b;}public void setAnnualnterestRate(double a) {annualnterestRate = a;}public int getId() {return id;}public double getBalance() {return balance;}public double getAnnualnterestRate() {return annualnterestRate;}// 取钱方法public void withdraw(double amount) {if (amount <= balance && amount > 0) {balance -= amount;System.out.println("成功取出:" + amount);} else {System.out.println("余额不足,取款失败");}}// 存钱方法public void deposit(double amount) {if (amount > 0) {balance += amount;System.out.println("成功存入:" + amount);}}
}

客户类(Customer)

        接下来,我们创建Customer类来模拟客户。这个类包含三个私有属性:名字(firstName)、姓氏(lastName)和关联的账户(account。我们还提供了构造器来初始化客户的名字和姓氏,并提供了存取器方法来访问这些属性。此外,我们提供了setAccountgetAccount方法来分别设置和获取客户的账户信息。

public class Customer {// 属性private String firstName;private String lastName;private Account account;public Customer(String f,String l){firstName = f;lastName = l;}public String getFirstName(){return firstName;}public String getLastName(){return lastName;}public void setAccount(Account a){account = a;}public Account getAccount(){return account;}}

测试类(CustomerTest)

        最后,我们通过CustomerTest类来测试我们的系统。在这个类中,我们首先创建了一个名为Jane Smith的客户,并为她创建了一个账号为1000、余额为2000元、年利率为1.23%的账户。然后,我们对这个账户进行了一系列操作:存入100元,取出960元,再尝试取出2000元(这次会失败,因为余额不足)。最后,我们打印出Jane Smith的基本信息和她的账户信息。

public class CustomerTest {public static void main(String[] args) {// 创建一个customerCustomer customer = new Customer("Jane","smith");Account account = new Account(1000,2000,0.0123);// 将账户的地址值赋值给客户,客户就拿到账户的信息customer.setAccount(account);// 针对于客户的账户的进行取钱、存钱的操作customer.getAccount().deposit(100);     // 存100customer.getAccount().withdraw(960);    // 取960customer.getAccount().withdraw(2000);   // 取2000// 输出客户的信息System.out.println("Customer [" + customer.getLastName() + ", " + customer.getFirstName() +"] has a account: " + customer.getAccount().getId() + ", annualnterestRate is " +customer.getAccount().getAnnualnterestRate()*100 + "%, balance is " +customer.getAccount().getBalance());}
}

运行结果

        通过这个简单的示例,我们展示了如何使用Java类来模拟现实世界中的银行账户和客户交易系统。希望这个示例能够帮助你理解面向对象编程的基本概念,并激发你对Java编程的进一步兴趣。


http://www.mrgr.cn/news/13531.html

相关文章:

  • Spark-Task启动流程
  • 游戏开发面试题
  • P6242 【模板】线段树 3(区间最值操作、区间历史最值)
  • 2024北师大人工智能夏令营面试及机试经验
  • python模块
  • 阿里\字节\华为数据中台产品对比
  • Nginx负载均衡与WebSocket集成:配置指南与实践
  • 12.torchvision中的数据集使用
  • mqtt的理解
  • 手机二要素api接口是什么?怎么对接使用?
  • 5步实现猫眼电影爬虫与k-means算法可视化分析
  • RabbitMQ实战-JavaDemo
  • 微服务CI/CD实践(二)服务器先决准备
  • blender修改材质时出现颜色丢失的问题
  • Windows TCP/IP IPv6 DDos远程蓝屏复现及修复(CVE-2024-38063)
  • .NET_web前端框架_layui_栅格布局
  • 数据世界的新篇章:精通INSERT INTO数据插入艺术
  • 【计算机网络】计算机网络的分层结构
  • HTML简单了解和基础知识记录
  • 爆改YOLOv8|利用全新的聚焦式线性注意力模块Focused Linear Attention 改进yolov8(v1)