《Java语言程序设计》P296

本章是关于对象的思考,主要是在研究面向对象的程序设计时类的设计,作业写得比较杂乱,构造方法时没有严格遵守类的流行设计风格,由于是作业,再加上比较简单,没有添加任何注释。

整套程序分为两个类,一个Account类,用于定义Account()及其方法;一个AccountTest类,用于调用Account类中的方法以实现题目要求的功能。

public class Account {
    private static int ACOUNT_NUMBER = 5;
    private int moneyAtAcount = 5000;
    private boolean isLogin = false;
    public void Acount(){

    }

    public int getMoneyAtAcount(){
        return moneyAtAcount;
    }

    public void withdraw(int m){
        moneyAtAcount -= m;
        System.out.println("Withdraw "+m+" succeed, now balance have " + moneyAtAcount);
    }

    public void deposite(int n){
        moneyAtAcount += n;
        System.out.println("Deposite "+n+" succeed, now balance have " + moneyAtAcount);
    }

    public void login(int p){
        if(p == ACOUNT_NUMBER){
            isLogin = true;

        }else
            System.out.println("Wrroy Account");
    }

    public boolean getLogin(){
        return isLogin;
    }

    public void logout(){
        isLogin = false;
    }

}
import java.util.Scanner;

public class AcountTest {
    public static void main(String[] args) {
        Account account = new Account();
        Scanner input = new Scanner(System.in);

        for (int i=1;i>0;i++) {     //人为无限循环,题目要求如此,实现的比较简陋
            System.out.println("Enter an id:");
            account.login(input.nextInt());
            for (;account.getLogin();) {         //对于printf的编辑格式不是很熟悉,为了图方便,选用一打println来输出选单
                System.out.println("Main menu");
                System.out.println("1:check balance");
                System.out.println("2:withdraw");
                System.out.println("3:deposit");
                System.out.println("4:exit");
                System.out.println("Enter a choice: ");

                int choice = input.nextInt();
                switch(choice){
                case 1:
                    System.out.println(account.getMoneyAtAcount());
                    break;
                case 2:
                    System.out.println("Enter an amount to withdraw: ");
                    account.withdraw(input.nextInt());
                    break;
                case 3:
                    System.out.println("Enter an amount to deposit: ");
                    account.deposite(input.nextInt());
                    break;
                case 4:
                    account.logout();
                    break;
                }

            }

        }
    }
}

2016-03-24

Chp10 10.7的更多相关文章

  1. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  3. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  4. CI Weekly #10 | 2017 DevOps 趋势预测

    2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...

  5. 10个最好用的HTML/CSS 工具、插件和资料库

    大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...

  6. 【Win 10 应用开发】启动远程设备上的应用

    这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...

  7. 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8   在安装的时候报错: -1ubu1604-amd64.deb 提示: ...

  8. Ubuntu 16.10 安装byzanz截取动态效果图工具

    1.了解byzanz截取动态效果图工具 byzanz能制作文件小,清晰的GIF动态效果图,不足就是,目前只能通过输入命令方式来录制. byzanz主要的参数选项有: -d, --duration=SE ...

  9. Ubuntu 16.10 安装KolourPaint 4画图工具

    KolourPaint 4画图工具简单实用,可以绘画.视频处理和图标编辑: • 绘画:绘制图表和“手绘” • 视频处理:编辑截图和照片;应用特效 • 图标编辑:绘画剪贴和标识透明化 1.在Ubuntu ...

随机推荐

  1. IOS --- OC与Swift混编

    swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. ...

  2. Dependency Scope

    Dependency Scope <dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: * compile,缺 ...

  3. Bitmap 的几种压缩方式

    微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩.试了几种方法,一一道来. 代码如下 ByteArrayOutputStream baos =  new  ByteArrayOutputSt ...

  4. Eclipse 显示所有文件

    Package Explorer -> View Menu -> Filters -> uncheck .* resources http://stackoverflow.com/q ...

  5. 1、jvm的体系结构

    jvm包括两子系统两组件 a.两子系统:Class Loader子系统,Execution engine子系统 b.两组件:Runtime Date Area 和 Native Interface

  6. Python笔记-集合,拷贝

    对于列表,元组,集合的异同,有如下解释 #list ----> 允许重复的集合,修改# tuple ----> 允许重复的集合,不修改# set ----> 不允许重复的集合下面是示 ...

  7. Makefile 一点一滴(三)—— 尝试简单的变量替换

    上一版的 makefile: TestCpp : ./debug/TestCpp.o g++ -o TestCpp ./debug/TestCpp.o ./debug/TestCpp.o : ./sr ...

  8. ubuntu 13.04 telnet 详细配置

    1. sudo vi /etc/xinetd.d/telnet并加入以下内容:# default: on# description: The telnet server serves telnet s ...

  9. js拖拽效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. CMT learning

    一个 GMT 命令由"gmt + 模块 + 选项 + 参数"构成,写成如下形式: gmt module -Axx+bxxxx -Bxx+axxxx • gmt 是 GMT 中&qu ...