自己做的关于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);
}*/
}
}