《Java核心技術精講》第十八章 一對多映射綜合實戰練習

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.設置並取出數據,按照結構設置數據,按照結構取出數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章