zoukankan      html  css  js  c++  java
  • Java简单类——双向一对多映射

      1 class Item {     // 父栏目
      2     private int iid ;
      3     private String name ;
      4     private String note ;
      5     private Subitem subitems [] ; //一个父栏目下有多个子栏目
      6     private Product products [] ; //一个栏目下包含多个商品
      7     public Item(int iid,String name,String note) {
      8         this.iid = iid ;
      9         this.name = name ;
     10         this.note = note ;
     11     }
     12     public void setSubitems(Subitem subitems[]) {
     13         this.subitems = subitems ;
     14     }
     15     public void setProducts(Product[] products) {
     16         this.products = products ;
     17     }
     18     public Product[] getProducts() {
     19         return this.products ;
     20     }
     21     public Subitem [] getSubitems() {
     22         return this.subitems ;
     23     }
     24     public String getInfo() {
     25         return "栏目编号:" + this.iid + ",名称:" + this.name + ",描述:" + this.note ;
     26     }
     27 }
     28 class Subitem {  // 子栏目
     29     private int sid ;
     30     private String name ;
     31     private String note ;
     32     private Item item ; // 一个子栏目对应一个父栏目
     33     private Product products [] ; //一个子栏目下包含多个商品
     34     public Subitem(int sid,String name,String note) {
     35         this.sid = sid ;
     36         this.name = name ;
     37         this.note = note ;
     38     }
     39     public void setItem(Item item) {
     40         this.item = item ;
     41     }
     42     public Item getItem() {
     43         return this.item ;
     44     }
     45     public void setProducts(Product products[]) {
     46         this.products = products ;
     47     }
     48     public Product[] getProducts() {
     49         return this.products ;
     50     }
     51     public String getInfo() {
     52         return "子栏目编号:" + this.sid + ",名称:" + this.name + ",描述:" + this.note ;
     53     }
     54 }
     55 class Product {  // 商品
     56     private int pid ;
     57     private String name ;
     58     private double price ;
     59     private Item item ;
     60     private Subitem subitem ;
     61     public Product(int pid,String name,double price) {
     62         this.pid = pid ;
     63         this.name = name ;
     64         this.price = price ;
     65     }
     66     public void setItem(Item item) {
     67         this.item = item ;
     68     }
     69     public Item getItem() {
     70         return this.item ;
     71     }
     72     public void setSubitem(Subitem subitem) {
     73         this.subitem = subitem ;
     74     }
     75     public Subitem getSubitem() {
     76         return this.subitem ;
     77     }
     78     public String getInfo() {
     79         return "商品编号:" + this.pid + ",名称:" + this.name + ",价格:" + this.price ;
     80     }
     81 }
     82 public class TestISP {
     83     public static void main(String args[]){
     84         //准备出单独的类对象
     85         Item item = new Item(1,"文具","-") ;
     86         Subitem suba = new Subitem(1001,"笔","-") ;
     87         Subitem subb = new Subitem(1002,"尺","-") ;
     88         Subitem subc = new Subitem(1003,"刀","-") ;
     89         Product proa = new Product(90001,"中性笔",2.0) ;
     90         Product prob = new Product(90002,"钢笔",10.0) ;
     91         Product proc = new Product(90003,"毛笔",8.0) ;
     92         Product prod = new Product(90004,"直尺",2.0) ;
     93         Product proe = new Product(90005,"三角尺",1.5) ;
     94         Product prof = new Product(90006,"美工刀",5.0) ;
     95         Product prog = new Product(90007,"剪刀",6.0) ;
     96         //设置类之间的引用关系
     97         suba.setItem(item) ;
     98         subb.setItem(item) ;
     99         subc.setItem(item) ;
    100         item.setSubitems(new Subitem[]{suba,subb,subc}) ;
    101         proa.setSubitem(suba) ;
    102         proa.setItem(item) ;
    103         prob.setSubitem(suba) ;
    104         prob.setItem(item) ;
    105         proc.setSubitem(suba) ;
    106         proc.setItem(item) ;
    107         prod.setSubitem(subb) ;
    108         prod.setItem(item) ;
    109         proe.setSubitem(subb) ;
    110         proe.setItem(item) ;
    111         prof.setSubitem(subc) ;
    112         prof.setItem(item) ;
    113         prog.setSubitem(subc) ;
    114         prog.setItem(item) ;
    115         suba.setProducts(new Product[] {proa,prob,proc}) ;
    116         subb.setProducts(new Product[] {prod,proe}) ;
    117         subc.setProducts(new Product[] {prof,prog}) ;
    118         item.setProducts(new Product[] {proa,prob,proc,prod,proe,prof,prog}) ;
    119         //取出数据
    120         //1、通过一个类型找到全部的子类型
    121         System.out.println(item.getInfo()) ;
    122         for (int x = 0;x <item.getSubitems().length ;x ++ ){
    123             System.out.println("	|-" + item.getSubitems()[x].getInfo()) ;
    124         }
    125         System.out.println("--------------------------------------------------------------") ;
    126         System.out.println(item.getInfo()) ;
    127         for (int x = 0;x <item.getProducts().length ;x ++ ){
    128             System.out.println("	|-" + item.getProducts()[x].getInfo()) ;
    129             System.out.println("	|-" + item.getProducts()[x].getSubitem().getInfo()) ;
    130         }            
    131         System.out.println("--------------------------------------------------------------") ;
    132         System.out.println(subb.getInfo()) ;
    133         for (int x = 0;x <subb.getProducts().length ;x ++ ){
    134             System.out.println("	|-" + subb.getProducts()[x].getInfo()) ;
    135         }
    136     }
    137 }

    第一次写上百行的代码啊QAQ,中间报错了几次折腾了好久才发现是尼玛设定set和get方法时竟然不知道怎么的把public写成了private,晕死,以后就知道了。错误如下图

    最终完成时运行结果如下

  • 相关阅读:
    团队作业开发过程
    UVM基础之--------uvm_root
    UVM基础之------uvm_transaction
    UVM基础之----uvm_object
    UVM挑战及概述
    定制UVM Messages(参考)
    SV creation order
    IC验证概念总结
    win7 硬盘安装suse双系统启动顺序更改
    suse 下的gcc安装
  • 原文地址:https://www.cnblogs.com/jl29233zx/p/5260421.html
Copyright © 2011-2022 走看看