【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.rhkb.cn/news/411310.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

09.定时器02

#include "reg52.h"sbit led P3^6;void delay10ms() { //1. 配置定时器0工作模式位16位计时TMOD 0x01;//2. 给初值&#xff0c;定一个10ms出来TL00x00;TH00xDC;//3. 开始计时TR0 1;TF0 0; } void main() {int cnt 0;led 1;while(1){if(TF0 1)//当爆表的时候&a…

Open3D mesh 去除噪点

目录 一、概述 1.1去除噪点的方法 1.2应用 二、代码实现 三、实现效果 3.1原始点云 3.2添加噪声的mesh Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、概述 在三维网格…

LeetCode刷题:1 两数之和

1. 两数之和 暴力解法:O(N^2) //给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 // // 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。…

list的使用及其相关知识点

目录 ◉list的底层逻辑 ◉关于list的新增功能 ▲splice功能 ▲remove函数 ▲unique函数 ▲merge函数 ▲sort函数 ▣迭代器类型 ▲reverse函数 作为数据容器之一的list和其他容器的使用上有很多相似的地方&#xff0c;比如都有大致相同的构造函数&#xff0c;大致相同的头插尾插…

【Java】—— Java面向对象基础:Java中如何创建和使用三角形类(TriAngle)来计算面积

目录 第一步&#xff1a;定义TriAngle类 第二步&#xff1a;编写TriAngleTest测试类 运行程序 总结 在Java编程中&#xff0c;面向对象的编程思想是一种非常强大的工具&#xff0c;它允许我们将现实世界中的实体&#xff08;如三角形&#xff09;抽象成程序中的类&#xff…

Python+tkinter实现2048游戏

游戏规则 2048 是一个单人拼图游戏&#xff0c;目标是通过滑动方块将相同数字的方块合并&#xff0c;最终得到一个数字为 2048 的方块。 游戏在一个 4x4 的网格上进行&#xff0c;初始时有两个方块&#xff0c;每个方块的值为 2 或 4。玩家可以通过上下左右方向键滑动方块&am…

微服务间调用

一、restTemplate 1、先将restTemplate注册成为一个bean Configuration public class RemoteCallConfig {Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }2、实现代码 private void handleCartItems(List<CartVO> vos) {// TODO 1.获取商品id…

【C++ Primer Plus习题】6.4

问题: 解答: #include <iostream> using namespace std;const int strsize 40; const int usersize 40;typedef struct _Bop {char fullname[strsize];char title[strsize];char bopname[strsize];int preference; }Bop;Bop bop_user[usersize] {{"Wimp Macho&q…

使用Python调用JavaScript进行网页自动化操作

随着互联网技术的飞速发展&#xff0c;网页自动化操作在数据抓取、用户界面测试、内容管理等多个领域变得越来越重要。Python作为一种流行的编程语言&#xff0c;因其简洁的语法和强大的库支持&#xff0c;成为了许多开发者进行网页自动化的首选工具。然而&#xff0c;面对动态…

【C++ Primer Plus习题】6.8

问题: 解答: #include <iostream> #include <fstream> #include <string> using namespace std;int main() {string filename;ifstream stream;char read_char;int count0;cout << "请输入要打开的文件:";getline(cin, filename);stream.op…

微分方程(Blanchard Differential Equations 4th)中文版Section5.1

平衡点分析 从第3章的工作中,我们能够对线性系统的解有定性和解析的理解。不幸的是,非线性系统通常不容易使用我们开发的解析和代数技术来分析,但我们可以利用线性系统的数学来理解非线性系统在其平衡点附近的行为。 Van der Pol 方程 为了说明如何分析平衡点附近解的行为…

输电线路分布式故障诊断系统:分布式智慧网络的构建

输电线路分布式故障诊断系统&#xff1a;分布式智慧网络的构建 今天&#xff0c;就让深圳鼎信智慧科技陪大家一起走进输电线路分布式故障定位系统的世界&#xff1a; 1、系统架构&#xff1a;分布式智慧网络的构建 输电线路分布式故障定位系统主要由三大核心部分组成&#x…

数据结构(6.4_2)——最短路径问题_BFS算法

最短路径问题 BFS求无权图的单源最短路径 原代码 改造visit函数后

Elastic日志分析

目录 介绍步骤 介绍 Elasticsearch 是在 Apache Lucene 上构建的分布式搜索和分析引擎。Elasticsearch常用于日志分析、全文搜索、安全智能、业务分析和运维智能使用案例。 可以使用 JSON 文档形式或通过 API 等将数据发送到 Elasticsearch。 Elasticsearch 自动存储原始文档…

Launcher3 长按Hotseat图标,显示删除角标(红底白杠杠用于删除图标或者显示应用未读消息数量)

基于Android 13,Launcher3实现需求&#xff1a; 1. 长按Hotseat的图标显示红色删除角标 2. 点击角标&#xff0c;删除图标并保存到Database 3.点击其他地方&#xff0c;取消编辑hotseat图标模式 实现效果&#xff1a; 实现原理&#xff1a; 图标是由BubbleTextView来是实现…

数据库系统入门指南

数据库系统入门指南 数据库系统是现代信息技术的重要组成部分。本文将介绍数据库、数据库管理系统、数据库应用系统以及相关概念&#xff0c;帮助初学者快速上手。 什么是数据库&#xff1f; 数据库是一个有组织、可共享的数据集合。它存储在计算机中&#xff0c;数据按一定…

idea import配置

简介 本文记录idea中import相关配置&#xff1a;自动导入依赖、自动删除无用依赖、避免自动导入*包 自动导入依赖 在编辑代码时&#xff0c;当只有一个具有匹配名称的可导入声明时&#xff0c;会自动添加导入 File -> Settings -> Editor -> General -> Auto Imp…

FL Studio24苹果mac电脑破解绿色版安装包下载

FL Studio 24最新版本&#xff0c;这可不仅仅是一个音乐制作软件的升级&#xff0c;它是音乐创作爱好者的福音&#xff0c;是专业制作人的心头好。那么&#xff0c;它究竟有哪些魔力&#xff0c;能让这么多人为之疯狂呢&#xff1f; 我们来看看它的界面。FL Studio 24的界面设…

Nginx: 负载均衡基础配置, 加权轮序, hash算法, ip_hash算法, least_conn算法

负载均衡 在真正的反向代理场景中&#xff0c;必然涉及到的一个概念&#xff0c;就是负载均衡所谓负载均衡&#xff0c;也就是将Nginx的请求发送给后端的多台应用程序服务器通常的应用程序服务器&#xff0c;后面的每台服务器都是一个同等的角色&#xff0c;提供相同的功能 用…

类与ES6类之间的继承

前言 ● 下面是之前学习ES6 classes的代码 class PersonCl {constructor(fullName, birthYear) {this.fullName fullName;this.birthYear birthYear;}calcAge() {console.log(2037 - this.birthYear);}greet() {console.log(你好${this.fullName});}get age() {return 2037…