java中一对多,多对一的关联关系的实现

自己做的关于java中一对多,多对一的关联关系是如何实现的,对于初学者还是有一定参考价值的
/*
 * 功能:测试一对多多对一的关联关系
 * 作者:KDF5000
 * 时间:2012.11.3
 */
import java.util.ArrayList;
import java.util.Iterator;
public class Connect {
	public static void main(String []Args)
	{
		ArrayList<CreditCard > cards=new ArrayList<CreditCard >();
		//第一账户,对应三张卡
		CardsOwner owner1=new CardsOwner("宋江","男");
		
		CreditCard card1=new CreditCard("中国银行","123456789","123456",owner1);
		CreditCard card2=new CreditCard("工商银行","164794684","123456",owner1);
		CreditCard card3=new CreditCard("农业银行","468715647","123456",owner1);
		owner1.addCard(card1);
		owner1.addCard(card2);
		owner1.addCard(card3);
		//第二个账户对应两张卡
		CardsOwner owner2=new CardsOwner("林冲","男");
		
		CreditCard card5=new CreditCard("中国银行","123456789","123456",owner2);
		CreditCard card4=new CreditCard("工商银行","164794684","123456",owner2);
		
	    owner2.addCard(card5);
		owner2.addCard(card4);
		//把卡存起来
		cards.add(card1);
		cards.add(card2);
		cards.add(card3);
		cards.add(card4);
		cards.add(card5);
		//输出账户信息
		System.out.println("姓名	性别	银行	卡号		密码");
		owner1.showInfo();
		owner2.showInfo();
		System.out.println("--------------------------------------------");
		System.out.println("银行	卡号		密码	主人	性别");
		Iterator<CreditCard> i=cards.iterator();
		while(i.hasNext())
		{
			i.next().showCardsInfo();
		}
	}

}

//CreditCard类

class CreditCard
{
	String bankName;
	String	number;
	String	password;
	CardsOwner  owner;
	
	//constructor
	public CreditCard(String bankName, String number, String password,CardsOwner  owner)
	{
	
		this.bankName = bankName;
		this.number = number;
		this.password = password;
		this.owner=owner;
	}
	//setter and getter
	public String getBankName() {
		return bankName;
	}
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public CardsOwner getOwner() {
		return owner;
	}
	public void setOwner(CardsOwner owner) {
		this.owner = owner;
	}
	//输出银行卡的信息
	void  showCardsInfo()
	{
		System.out.println(this.bankName+"	"+this.number+"	"+this.password+"	"+this.owner.getName()+"	"
				+this.owner.getSex());
	}
}

//银行卡持有者
class CardsOwner
{
	private String name;
	private String	sex;
	ArrayList<CreditCard> cards;
	
	//构造方法
	public CardsOwner(String name, String sex) {
		this.name = name;
		this.sex = sex;
		cards=new ArrayList<CreditCard>();
	}

   //getter and setter
	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public String getSex() {
		return sex;
	}


	public void setSex(String sex) {
		this.sex = sex;
	}


	public ArrayList<CreditCard> getCards() {
		return cards;
	}


	public void setCards(ArrayList<CreditCard> cards) {
		this.cards = cards;
	}

	void addCard(CreditCard card)
	{
		cards.add(card);
		card.setOwner(this);
	}
    //输出个人信息
	//迭代器输出
	void showInfo()
	{
		Iterator<CreditCard> i=cards.iterator();
		while(i.hasNext())
		{
			CreditCard temp1=i.next();
			System.out.println(this.name+"	"+this.sex+"	"+temp1.bankName+"	"
					+temp1.number+"	"+temp1.password);
		}
		//for循环输出
		/*for(int j=0;j<cards.size();j++)
		{
			CreditCard temp=cards.get(j);
			
			System.out.println(this.name+"	"+this.sex+"	"+temp.bankName+"	"
					+temp.number+"	"+temp.password);
		}*/
	}
	
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值