翻译public class MoneyBean { private double money; public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } }
时间: 2024-04-06 17:28:45 浏览: 5
这是一个Java类,名为MoneyBean。它有一个私有的double类型变量money,以及一个公有的getMoney方法和一个公有的setMoney方法。
getMoney方法返回money变量的值,而setMoney方法将传入的double类型参数赋值给money变量。
这个类的作用可能是表示一些金额,并提供了获取和设置金额的方法。
相关问题
package com.cx.bank.manager; import com.cx.bank.model.MoneyBean; public class ManagerImpl { MoneyBean moneyBean = new MoneyBean(); public double inquiry(){ double money = moneyBean.getMoney(); return money; } public boolean withdrawals(double money){ if(money <= 0 ){ System.out.println("对不起,您的取款金额需大于0元!"); return false; } double leave = moneyBean.getMoney(); if(money > leave){ System.out.println("对不起,您的存款金额不够!"); return false; } moneyBean.setMoney(leave - money); System.out.println("取款成功!"); return true; } public boolean deposit(double money){ if(money <=0 ){ System.out.println("对不起,您的存款金额需大于0元!"); return false; } double leave = moneyBean.getMoney(); moneyBean.setMoney(leave + money); System.out.println("存款成功!"); return true; } public void exitSystem(){ System.out.println("系统已经退出"); System.exit(1); } }用单例模式实现ManagerImpl对象的创建。
好的,下面是使用单例模式实现ManagerImpl对象的创建的代码示例:
```
package com.cx.bank.manager;
import com.cx.bank.model.MoneyBean;
public class ManagerImpl {
private static ManagerImpl instance = null; // 单例模式实例
private MoneyBean moneyBean = new MoneyBean();
private ManagerImpl() {} // 私有构造函数
public static ManagerImpl getInstance() {
if (instance == null) {
instance = new ManagerImpl();
}
return instance;
}
public double inquiry() {
double money = moneyBean.getMoney();
return money;
}
public boolean withdrawals(double money) {
if (money <= 0) {
System.out.println("对不起,您的取款金额需大于0元!");
return false;
}
double leave = moneyBean.getMoney();
if (money > leave) {
System.out.println("对不起,您的存款金额不够!");
return false;
}
moneyBean.setMoney(leave - money);
System.out.println("取款成功!");
return true;
}
public boolean deposit(double money) {
if (money <= 0) {
System.out.println("对不起,您的存款金额需大于0元!");
return false;
}
double leave = moneyBean.getMoney();
moneyBean.setMoney(leave + money);
System.out.println("存款成功!");
return true;
}
public void exitSystem() {
System.out.println("系统已经退出");
System.exit(1);
}
}
```
这里的关键在于将构造函数设为私有,这样外部就无法通过new来创建ManagerImpl对象,而是通过静态方法getInstance()来获取单例模式实例。当instance为null时,创建一个新的ManagerImpl对象;当instance不为null时,直接返回该对象。这样就保证了ManagerImpl类只有一个实例对象。
package com.cx.bank.manager; import com.cx.bank.model.MoneyBean; //业务层 public class ManagerImpl { MoneyBean mb = new MoneyBean(); //查询当前存款 public double inquiry(){ double money = mb.getMoney(); return money; } //取款 public boolean withdrawals(double money){ if(money <= 0 ){ System.out.println("对不起,您的取款金额需大于0元!"); return false; } double leave = mb.getMoney(); if(money > leave){ System.out.println("对不起,您的存款金额不够!"); return false; }//实现“余额不足”逻辑判断 mb.setMoney(leave - money); System.out.println("取款成功!"); return true; } //存款 public boolean deposit(double money){ if(money <=0 ) { System.out.println("对不起,您的存款金额需大于0元!"); return false; }//实现“存款不能为负”逻辑判断 double leave = mb.getMoney(); mb.setMoney(leave + money); System.out.println("存款成功!"); return true; } //退出系统 public void exitSystem(){ System.out.println("系统已经退出"); System.exit(1); } } 改为但例模式
好的,下面是 ManagerImpl 类的单例模式实现:
```
package com.cx.bank.manager;
import com.cx.bank.model.MoneyBean;
//业务层
public class ManagerImpl {
private static ManagerImpl instance = null;
private MoneyBean mb = new MoneyBean();
private ManagerImpl() {
}
public static ManagerImpl getInstance() {
if (instance == null) {
instance = new ManagerImpl();
}
return instance;
}
//查询当前存款
public double inquiry() {
double money = mb.getMoney();
return money;
}
//取款
public synchronized boolean withdrawals(double money) {
if (money <= 0) {
System.out.println("对不起,您的取款金额需大于0元!");
return false;
}
double leave = mb.getMoney();
if (money > leave) {
System.out.println("对不起,您的存款金额不够!");
return false;
}//实现“余额不足”逻辑判断
mb.setMoney(leave - money);
System.out.println("取款成功!");
return true;
}
//存款
public synchronized boolean deposit(double money) {
if (money <= 0) {
System.out.println("对不起,您的存款金额需大于0元!");
return false;
}//实现“存款不能为负”逻辑判断
double leave = mb.getMoney();
mb.setMoney(leave + money);
System.out.println("存款成功!");
return true;
}
//退出系统
public void exitSystem() {
System.out.println("系统已经退出");
System.exit(1);
}
}
```
在这个实现中,我们使用私有的构造函数和静态的 getInstance() 方法来保证只有一个 ManagerImpl 实例存在。在 withdrawals() 和 deposit() 方法中,我们使用 synchronized 关键字来保证同一时刻只有一个线程访问这些方法,避免了多线程并发访问共享资源的问题。