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);
		}*/
	}
	
}
相關文章
相關標籤/搜索