银行余额存取小例子

定义账户

package atguigu.com;

public class Account {
    private int id;
    private double balance;
    private double annualInterestRate;

    public Account(int id,double balance,double annualInterestRate){
        this.id = id;
        this.balance = balance;
        this.annualInterestRate = annualInterestRate;

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }

    public double getAnnualInterestRate() {
        return annualInterestRate;
    }

    public void setAnnualInterestRate(double annualInterestRate) {
        this.annualInterestRate = annualInterestRate;
    }

    //在提款方法withDraw中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。
    public void withDraw(double amount){//取钱
        if(balance < amount){
            System.out.println("余额不足,取钱失败");
            return;
        }
        balance -= amount;
        System.out.println("成功取出: " + amount);
    }
    public void deposit(double amount){//存钱
        if(amount > 0){
            System.out.println("成功存入: " + amount);
        }
    }
}

定义用户

package atguigu.com;

public class Customer {
    private String firstName;
    private String lastName;
    private Account account;


    public Customer(String f,String l){
        this.firstName = f;
        this.lastName = l;
    }


    public Account getAccount() {
        return account;
    }


    public void setAccount(Account account) {
        this.account = account;
    }


    public String getFirstName() {
        return firstName;
    }


    public String getLastName() {
        return lastName;
    }
}

测试程序

package atguigu.com;
/*
 * 写一个测试程序
 * (1)创建一个Customer,名字叫Jane Smith,他有一个账号为1000,余额为2000元,年利率为1.23
 * (2)对Jane Smith操作
 * 存入100元,再取出960元,再取出2000元
 * 打印出Jane Smith的基本信息
 */
public class CustomerTest {
    public static void main(String[] args){
        Customer cust = new Customer("Jane", "Smith");

        Account acct = new Account(1000,2000,0.0123);

        cust.setAccount(acct);
        cust.getAccount().deposit(100);
        cust.getAccount().withDraw(960);
        cust.getAccount().withDraw(2000);
        System.out.println("Customer[" + cust.getLastName() + "," + 
        cust.getFirstName() + "]has a account: id is " + acct.getId() + "\r" + ",annualInterestRate is " + acct.getAnnualInterestRate()*100 + "%,balance is " + acct.getBalance());


    }
}

4.10关键字package,import的使用

package atguigu2.com;

import java.util.*;

import atguigu.com.Account;

/*
 * 一、package关键字的使用
 * 1.为了更好的实现项目中类的管理、提供包的概念
 * 2.使用package声明类或接口所属的包,声明在源文件的首行
 * 3.包,属于标识符,遵循标识符的命名规则、规范(xxxxyyyzzz)、"见名知意"
 * 4.每"."一次,就代表一层文件目录。
 * 
 * 
 * 补充:同一个包下,不能命名同名的接口、类
 *         不同包下,可以命名同名的接口、类
 *         
 * 二、import关键字的使用
 * import:导入
 * 1.为了源文件中显式的使用import结构导入指定包下的类、接口
 * 2.声明在包的声明和类的声明之间
 * 3.如果需要导入多个结构,则并列写出即可
 * 4.可以使用"XXX.*"的方式,表示可以导入XXX包下的所有结构。
 * 5.如果使用的类或接口是java.lang包下定义的,则可以省略import结构
 * 6.如果使用的类或接口是本包下定义的,则可以省略import结构
 * 7.如果在源文件中使用了不同包下的同名类,则必须至少有一个类需要以全类名的方式显式。
 * 8.如果使用"XXX.*"方式表明可以调用XXX包下的所有结构。但是如果使用的是XXXX子包下的结
 * 构,则仍需要显示导入
 * 9.import static:导入指定类或接口中的静态结构:属性或方法。
 */
public class PackageImportTest {
        String info = Arrays.toString(new int[]{1,2,3});

        ArrayList list = new ArrayList();
        HashMap map = new HashMap();

        Account acct = new Account(1000);
}