java-求做一个Java类的设计的题

问题描述

求做一个Java类的设计的题

Account类:代表一个银行账户
balance属性:代表账户里的金额
deposit方法:向账户中存钱,如果传入的金额大于0,存钱,返回true,否则不存钱,返回false
withdraw方法:从账户中取钱,如果余额够,取钱,返回true,如果余额不足,不取钱,返回false
display方法:用于查询当前帐户金额

解决方案

public class Account {
private double balance;//定义账户的金额
/**
* 存钱
*/
public boolean deposit(double money){
boolean flag = false;
if(money>0.0){
balance+=money;
flag =true;

    }

    return flag;
}
/**
 *
 * @param money
 * @return
 */
public boolean withdraw(double money){
    boolean flag = false;
    if(money<=this.balance){
        balance-=money;
        flag =true;
    }

    return flag;
}
/**
 *
 * @param money
 * @return
 */
public double display(){
    return this.balance;
}
public double getBalance() {
    return balance;
}
public void setBalance(double balance) {
    this.balance = balance;
}

}

解决方案二:

 class Account{
   //都是整钱
     private int balance;
     public boolean deposit(int money){
        if(money>0.0){
            balance+=money;
                        return true;
                }else{
                    return false;
                }
    }
public boolean withdraw(int money){
    if(money<=this.balance){
        balance-=money;
        return true;
    }
    return false;
}
public int display(){
    return this.balance;
}
 }

解决方案三:

java--设计一个Person类

解决方案四:

求大神给看一下 谢谢啦

解决方案五:

1、实现基本功能,代码如下:

// Account类:代表一个银行账户
public class Account {

        // 代表账户里的金额
        private double balance;

        public Account(double amout) {
                balance = amout;
        }

        // 向账户中存钱,如果传入的金额大于0,存钱,返回true,否则不存钱,返回false
        public synchronized boolean deposit(double amount) {
                if (amount > 0) {
                        balance += amount;
                        return true;
                } else {
                        return false;
                }
        }

        // 从账户中取钱,如果余额够,取钱,返回true,如果余额不足,不取钱,返回false
        public synchronized boolean withdraw(double amount) {
                if (balance >= amount) {
                        balance -= amount;
                        return true;
                } else {
                        return false;
                }
        }

        // 用于查询当前帐户金额
        public double display() {
                return balance;
        }

        // 测试Account类
        public static void main(String[] args) throws IOException {
                // 初始化,显示余额
                Account account = new Account(34);
                System.out.println(account.desplay());
                // 存入16,显示余额
                System.out.print(account.deposit(16));
                System.out.println(account.desplay());
                // 存入-1,显示余额
                System.out.print(account.deposit(-1));
                System.out.println(account.desplay());
                // 取出16,显示余额
                System.out.print(account.withdraw(16));
                System.out.println(account.desplay());
                // 取出35,显示余额
                System.out.print(account.withdraw(35));
                System.out.println(account.desplay());
        }
}

2、存钱、取钱的方法都是synchronized修饰的方法,表明它们是同步方法,同步的对象是访问它们的Account对象。

这么做是为了避免在多线程中,多个线程同时取钱、存钱导致程序异常。

使用同步方法,保证每次只能有一个线程存钱或取钱;因为显示余额不会改变balance变量,所以display()方法不需要同步。

时间: 2024-12-28 12:41:33

java-求做一个Java类的设计的题的相关文章

c#-C#做一个益智类游戏 设计思路

问题描述 C#做一个益智类游戏 设计思路 新手,老师留了一个课题用C#做一个搭桥的益智类游戏,游戏的链接:http://www.puzzle-bridges.com/ 求大神给个思路,具体怎么设计这个游戏 解决方案 遍历所有节点,按照规则判断.岛和岛只能水平垂直连接,每个岛的桥的数量和数字相等,桥不能交叉生成游戏可以随机先产生节点和网格,随机删除一些路径,然后标记好数字,画出来.

我想用JAVA语音做一个JAVA编译工具,有DEBUG功能,但是无从下手,希望高手指点下,在线等

问题描述 debug功能类似VISUALSTUDIO,有stepinto,break之类的. 解决方案 解决方案二:Java深度探索者QQ群:65670864

网络编程-想做一个java b站的第三方登录,请问有什么比较方便的jar包可以引用?

问题描述 想做一个java b站的第三方登录,请问有什么比较方便的jar包可以引用? 如题,还是说只能用httpurlconnection?然后我用wireshark试图抓account.bilibili.com/login的数据包,结果死活抓不到post的包...感觉如果没有post包的话没办法进行数据分析...就没办法继续写下去了...由于是第一次设计,所以可能思路会有点问题,如果有做过类似程序的前辈感谢给出一点点建议....谢谢! import java.net.URL; import j

j2ee javaee java-最近在做一个java ee的学生考试管理系统,有个小问题

问题描述 最近在做一个java ee的学生考试管理系统,有个小问题 可以设定课程的考试成绩的计算方法:能够在页面上对某课程动态增加考核点,并填入该考核点的分值比例.如:如对J2EE课程,可新增3个考核点,考核点1为到课情况,分值比例为20%:考核点2为作业,分值比例为20%:考核点3为考试,分值比例为60%.能够验证分值比例之和是否等于100%. 这是要求 , 谁能给我提示一下如何实现 实在是想不出来 解决方案 一:E-R 关系 你们项目里面肯定会有学生信息表.课程信息表这二张表,现在要你动态对

求帮助一个java地铁换乘问题

问题描述 求帮助一个java地铁换乘问题 求帮助一个java地铁换乘问题,我想做一个有关地铁线路换乘的java应用程序,地铁换乘以广州为例.PS可以说明一下制作过程的想法和方法 希望大神可以给我一个完整的代码啊, 解决方案 看不懂 啥意思 地铁换乘咋了? 解决方案二: 假设你从M点到N点 你要定义出 1, 2, 3, 4 这四条地铁线上的所有站,可以用枚举,添加上对应的名称. 首先 你要判断M N 是否在同一条线上,如果在可以直接输出结果,如果不在找到第一换乘站, 获取这个换乘站上的另一条线路,

对象-java自己写一个按钮类问题

问题描述 java自己写一个按钮类问题 在一个java程序中,按钮有设置边框,透明,加图片,设置字体,设置背景颜色等行为,有多个按钮,如何写个按钮方法把这些行为写进去,调用的时候只要创建一个按钮对象就能将这么多行为包含进去 解决方案 直接用Java的awt库函数啊,用不着自己写,只要了解Java的按钮JButton,绑定事件处理函数. 解决方案二: 我觉得界面复制就好 不需要那么麻烦吧 解决方案三: 你可以写一个类继承java自己的JButton按钮,然后你把你想要的效果设为类的属性,你创建一个

java web新闻管理系统-谁用java web做一个简单的新闻管理系统啊,急用!!!

问题描述 谁用java web做一个简单的新闻管理系统啊,急用!!! 增删改,分页,有前台和后台.后台就是管理员的增删改,前台就是显示新闻的标题和内容.用oracle数据库链接.有的请发在我邮箱825091682@qq.com.谢谢了 解决方案 smarty实现简单的新闻管理系统smarty实现简单新闻管理系统 解决方案二: 不用框架,仅用java web

java 需要做一个连接池。但是不是数据库的,而是类似于一个接口(或者IP地址)

问题描述 java 需要做一个连接池.但是不是数据库的,而是类似于一个接口(或者IP地址) 具体场景如下: 对方提供多个计算服务器供我来调用,计算服务器只能同时计算2个任务. 现在我需要将计算服务器做成可以配置的,然后将任务排队.根据先进先出的原则. 如果所有服务器都在计算任务了.剩下的任务就需要排队了.而计算完成后,在去任务池中取任务.直到任务池的所有任务都处理玩了. 解决方案 使用JDK的线程池[Executors#newFixedThreadPool(2) ],同时并行两个任务,其他的都在

我想做一个java程序,可以连接到云端怎么做?

问题描述 我想做一个java程序,可以连接到云端怎么做? 我想做一个java程序,可以连接到云端怎么做?我想做一个java程序,可以连接到云端怎么做?我想做一个java程序,可以连接到云端怎么做?我想做一个java程序,可以连接到云端怎么做?我想做一个java程序,可以连接到云端怎么做?我想做一个java程序,可以连接到云端怎么做?我想做一个java程序,可以连接到云端怎么做? 解决方案 很简单,首先准备少许水,再准备酒精灯,然后将水加热,当水变成水蒸气,OK你就成功了!很快水蒸气飞向天空,自然