class Item{
private ind iid;
private String title;
private Sring note;
private Subitem []subitems;
//getter,setter,無參構造省略
public Item(int iid,String title,String note){
this.iid=iid;
this.title=title;
this.note=note;
}
public void setSubitems(Subitem []subitems){
this.subitems=subitems;
}
public Subitem getSubitems(){
return this.subitems;
}
public String getInfo(){
return "分類編號: "+this.iid+"名稱: "+this.title+"簡介: "+this.note;
}
}
//------------------------------------------------------------------------------------
class Subeitem{
private ind sid;
private String title;
private Sring note;
private Item item;
//getter,setter,無參構造省略
public Subitem(int sid,String title,String note){
this.sid=sid;
this.title=title;
this.note=note;
}
public void setItem(Item item){
this.item=item;
}
public Item getItem(){
return this.item;
}
public String getInfo(){
return "子分類編號: "+this.sid+"名稱: "+this.title+"簡介: "+this.note;
}
}
//------------------------------------------------------------------------------------
class TestDemo{
public static void main(String args[]){
//第一步,根據結構設計關係
//1.準備好所有的獨立對象,本處屬於一對多
Item item = new Item(10,"編程語言","-");
Subitem sbuA = new Subitem(1001,"Java","-");
Subitem sbuB = new Subitem(1002,"Phython","-");
Subitem sbuC = new Subitem(1003,"C","-");
//2.設置彼此的引用關係
subA.setItem(item);
subB.setItem(item);
subC.setItem(item);
//爲什麼此處不加this.item,1.從語法角度來講因爲在此類的static方法裏
//面,編譯器可以直接運 行 2.從內存的角度來講,TestDemo類沒有屬性,實現main方法的時候,不生
//成堆棧空間,所有的方法都在全局代碼區。3. 結論TestDemo沒有實例化,也不需要實例化,所以不會 //加this。
item.setSubitems(new Subitem[]{subA,subB,subC});
//第二步,根據表結構取出數據
system.out.println(subA.getInfo());
system.out.println("\t|-"+subA.getItem().getInfo());
system.out.println("\n*************************\n");
system.out.println(item.info());
for(int x=0;x<item.getSubitems().length;x++){
system.out.println("\t|-"+item.getSubitems()[x].getInfo());
//item.getSubitems()再加上[x],編譯器是從左到右讀代碼
}
}
}
按照步驟一步步把類補充完整:
1.先把簡單元素,簡單Java類寫出來,暫時不考慮他們之間的關係。
2.設置他們的關聯關係。
3.設置並取出數據,按照結構設置數據,按照結構取出數據。