【Java每日一题】— —第三十一题:银行账号管理程序设计

简介: 【Java每日一题】— —第三十一题:银行账号管理程序设计

🎯问题:


(1)需求分析:


                        (a)银行账户类,包括属性:银行名称(静态)、账户名称、账户密码、账户余额;包括行为:欢迎方法(静态)、欢送方法(静态)、存钱方法、取钱方法。


(2)设计步骤:


                        (a)银行账户类Account,定义成员变量:公有的静态变量银行名称(String bankName),账户余额(double  balance)、账户名称(String accountName)、账户密码(String accountPass),定义账户余额(double  balance)、账户名称(String accountName)、账户密码(String accountPass)对应的getXxx()/setXxx()方法,定义无参构造方法和带3个参数的构造方法Account(double balance, String accountName, String accountPass);


                        (b)在Account类中定义公有的静态方法welcome(),显示欢迎信息,定义公有的静态方法sayBye(),显示欢送信息;


                        (c)在Account类中定义boolean deposit(String accountName, String accountPass, double money)方法,用于存款,具体为:验证账号和密码,如果账号和密码都正确,则继续判断存款数money是否大于0,若是,则将money加入到账户余额(double  balance),并显示存入money信息和账户余额balance信息,返回true;如果存款数money大于0不成立,则提示输入存款金额错误信息,返回false;如果账号或密码不正确,显示错误信息,并返回false;


                        (d)在Account类中定义boolean withdraw(String accountName, String accountPass, double money)方法,用于取款,具体为:验证账号和密码,如果账号和密码都正确,则继续判断取款数money是否小于账户余额balance,若是,则从账户余额(double  balance)减掉取款数money,并显示取款money信息和账户余额balance信息,返回true;如果存款数money小于账户余额balance不成立,则提示输入取款金额错误信息,返回false;如果账号或密码不正确,显示错误信息,并返回false;


                        (e)定义一个测试类Test03测试功能,具体如下:使用Account类调用公有的静态变量bankName赋值银行名称,使用Account类调用静态方法welcome()显示欢迎信息,调用Account类的带参构造方法创建银行账户对象account,银行账户对象account调用deposit ()方法向银行账户存款,银行账户对象account调用withdraw ()方法从银行账户取款,最后使用Account类调用静态方法sayBye()显示欢送信息。测试结果如下:

ec0dbf4d4e741b6f634164443b84d73c_a3d54be9295b445d90540035c05fe596.png


🎯 代码:

public class Account {
private String bankName;
private static double  balance;
private String accountName;
private String accountPass;
public double getBalance() {
  return balance;
}
public void setBalance(double balance) {
  Account.balance = balance;
}
public String getAccountName() {
  return accountName;
}
public void setAccountName(String accountName) {
  this.accountName = accountName;
}
public String getAccountPass() {
  return accountPass;
}
public void setAccountPass(String accountPass) {
  this.accountPass = accountPass;
}
public Account() {
  super();
}
public Account(double balance, String accountName, String accountPass) {
  super();
  Account.balance = balance;
  this.accountName = accountName;
  this.accountPass = accountPass;
}
public void welcome() {
  System.out.println("欢迎光临");
}
public void sayBye(){
  System.out.println("再见");
}
public boolean deposit(String accountName, String accountPass, double money) {
  if(this.accountName.equals(accountName)&&this.accountPass.equals(accountPass)) {
    if(money>0) {
      System.out.println(accountName+"存入"+money+"元");
      balance+=money;
      System.out.println("目前的金额为:"+balance+"元");
      return true; 
    }
    else {
      System.out.println("输入错误");
      return false;
    }
  }
  System.out.println("账号或密码错误");
    return false;
}
public boolean withdraw(String accountName, String accountPass, double money) {
  if(this.accountName.equals(accountName)&&this.accountPass.equals(accountPass)) {
    if(money<balance) {
      System.out.println(accountName+"取出"+money+"元");
      balance=balance-money;
      System.out.println("目前的金额为:"+balance+"元");
      return true; 
    }
    else {
      System.out.println("输入错误或余额不足");
      return false;
    }
  }
  System.out.println("账号或密码错误");
  return false;
}
public static void main(String[] args) {
  Account a1=new Account(1000.0, "蔡旭坤", "123456");
  a1.bankName="潮商银行";
  a1.welcome();
  a1.deposit("蔡旭坤", "123456", 155.0);
  a1.withdraw("蔡旭坤", "123456", 123.0);
  a1.sayBye();
}
}
 
 

💛废话文学:

Java的优势:


跨平台性: Java是一种跨平台的编程语言,即一次编写,到处运行。Java程序在不同的操作系统上具有很高的移植性,这使得开发人员能够通过Java开发应用程序,无需担心底层操作系统的差异。


面向对象: Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这种编程范式使得代码可以更加模块化、可重用,并且有助于提高代码的可维护性和可扩展性。


强大的生态系统: Java拥有丰富的标准库和第三方库,提供了各种功能强大的工具和框架,如Spring、Hibernate和JUnit等。这些工具和框架使得Java开发人员能够更加高效地开发应用程序,并提供了解决特定问题的解决方案。


多线程支持: Java内置了对多线程编程的支持,使得开发人员可以轻松地创建并发应用程序。多线程编程可以有效地利用多核处理器的性能,并提高程序的响应速度和吞吐量。


安全性: Java拥有严格的安全机制,包括字节码验证、安全管理器和安全沙箱等,可以防止恶意代码对系统的破坏。这使得Java成为开发安全性要求较高的应用程序的理想选择。

相关文章
|
4月前
|
安全 小程序 Java
基于Java实训中心管理系统设计和实现(源码+LW+调试文档+讲解等)
基于Java实训中心管理系统设计和实现(源码+LW+调试文档+讲解等)
|
4月前
|
存储 小程序 Java
基于Java图书馆管理系统详细设计和实现(源码+LW+调试文档+讲解等)
基于Java图书馆管理系统详细设计和实现(源码+LW+调试文档+讲解等)
|
4月前
|
数据采集 监控 前端开发
JAVA公立医院绩效考核管理系统源码-对接HIS数据
在医院的工作和管理上,院领导需要对院内工作人员的工作情况进行了解、评价和监控。 下面将对医院绩效管理系统的HIS数据流程加以阐述。
41 1
JAVA公立医院绩效考核管理系统源码-对接HIS数据
|
3月前
|
JavaScript Java 测试技术
基于Java的人事管理系统设计和实现(源码+LW+部署讲解)
基于Java的人事管理系统设计和实现(源码+LW+部署讲解)
62 7
|
3月前
|
JavaScript Java 测试技术
基于Java的儿童福利院管理系统设计和实现(源码+LW+部署讲解)
基于Java的儿童福利院管理系统设计和实现(源码+LW+部署讲解)
73 7
|
3月前
|
缓存 安全 Java
Java中线程池如何管理?
【7月更文挑战第11天】Java中线程池如何管理?
39 2
|
3月前
|
存储 监控 算法
Java中如何管理内存?
【7月更文挑战第10天】Java中如何管理内存?
52 2
|
3月前
|
设计模式 缓存 安全
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
49 1
|
3月前
|
JavaScript 前端开发 Java
Java数字化产科管理系统源码,多家医院应用案例,可直接上项目
Java开发的数字化产科管理系统,已在多家医院实施,支持直接部署。系统涵盖孕产全程,包括门诊、住院、统计和移动服务,整合高危管理、智能提醒、档案追踪等功能,与HIS等系统对接。采用前后端分离架构,Java语言,Vue前端,若依框架,MySQL数据库。优势在于提升就诊效率,降低漏检率,自动报表生成,减少重复工作,支持数据研究,并实现医院与卫计委平台的数据互通,打造全生育周期健康服务。
53 4
|
3月前
|
IDE Java Apache
如何使用Maven管理Java项目依赖
如何使用Maven管理Java项目依赖