import java.util.ArrayList;
import java.util.List;

/**
* 题目:输出 小明(男)去建行存人民币5000和美元500
* 1.首先抽象出3个类:person,Bank,money;确定3个类之间的关系
* 2.确定每个类的属性方法;可以对较少的属性变量枚举
* 3.实例化3个类的对象
* 4.关联对象之间的关系,调用方法
*
*/
public class Test {

public static void main(String[] args) {
Person p = new Person();
p.setName("小明");
p.setSex(Sex.男);

Money m1 = new Money();
m1.setM(Moneytype.人民币);
m1.setNum(5000);
Money m2 = new Money();
m2.setM(Moneytype.美元);
m2.setNum(500);

List<Money> a = new ArrayList(); //利用集合将对象存起来
a.add(m1);
a.add(m2);

Bank b1 = new Bank();
b1.setBt(Banktype.建行);
Bank b2 = new Bank();
b2.setBt(Banktype.邮政);

p.setL(a); // 实例化对象之间的关联
p.cunkuan(b2); //person类的实例化对象调用本类方法

}
}

//person类

import java.util.List;
public class Person {
//属性
private String name ;
private Sex sex;
private List<Money> l; //money类作为person类的属性存在,关联关系,用到集合存储对象

public String getName() {
return name;
}
public List<Money> getL() {
return l;
}
public void setL(List<Money> l) {
this.l = l;
}
public void setName(String name) {
this.name = name;
}
public Sex getSex() {
return sex;
}
public void setSex(Sex sex) {
this.sex = sex;
}

//存钱的方法
public void cunKuan(Bank b) {
System.out.print(this.name+this.sex+"去"+b.getBt()+"存");

for(int i = 0;i<l.size();i++) {

System.out.print(l.get(i).getM());
System.out.print(l.get(i).getNum());

if(i < l.size()-1) {
System.out.print("和");
}
}
}
}

 

//money  类

public class Money {
private Moneytype m;
private double num;

public double getNum() {
return num;
}

public void setNum(double num) {
this.num = num;
}

public Moneytype getM() {
return m;
}

public void setM(Moneytype m) {
this.m = m;
}

}

//Bank 类

 

public class Bank {
private Banktype bt;

public Banktype getBt() {
return bt;
}

public void setBt(Banktype bt) {
this.bt = bt;
}

@Override
public String toString() {
return "Bank [bt=" + bt + "]";
}

}

//3个属性的枚举

public enum Sex {
男,女
}

public enum Banktype {
建行,邮政
}

public enum Moneytype {

人民币,美元

}