Java简单类——多对多映射
1 class Admin { 2 private String aid ; 3 private String password ; 4 private Role role ; 5 public Admin(String aid,String password) { 6 this.aid =aid ; 7 this.password = password ; 8 } 9 public void setRole(Role role) { 10 this.role = role ; 11 } 12 public Role getRole() { 13 return this.role ; 14 } 15 public String getInfo() { 16 return "管理员编号:" + this.aid + ",密码:" + this.password ; 17 } 18 } 19 class Role { 20 private int rid ; 21 private String title ; 22 private Admin admins [] ; 23 private Group groups [] ; 24 public Role(int rid,String title) { 25 this.rid = rid ; 26 this.title = title ; 27 } 28 public void setAdmins(Admin [] admins) { 29 this.admins = admins ; 30 } 31 public void setGroups(Group groups[]) { 32 this.groups = groups ; 33 } 34 public Group [] getGroups() { 35 return this.groups ; 36 } 37 public Admin [] getAdmins() { 38 return this.admins ; 39 } 40 public String getInfo() { 41 return "角色编号:" + this.rid + ",名称:" + this.title ; 42 } 43 } 44 class Group { 45 private int gid ; 46 private String title ; 47 private Role roles [] ; 48 private Action actions [] ; 49 public Group(int gid,String title) { 50 this.gid = gid ; 51 this.title = title ; 52 } 53 public void setRoles(Role roles[]) { 54 this.roles = roles ; 55 } 56 public void setActions(Action actions[]) { 57 this.actions = actions ; 58 } 59 public Action [] getActions() { 60 return this.actions ; 61 } 62 public Role [] getRoles() { 63 return this.roles ; 64 } 65 public String getInfo() { 66 return "权限组编号:" + this.gid + ",名称:" + this.title ; 67 } 68 } 69 class Action { 70 private int aid ; 71 private String title ; 72 private String url ; 73 private Group group ; 74 public Action(int aid,String title,String url) { 75 this.aid = aid ; 76 this.title = title ; 77 this.url = url ; 78 } 79 public void setGroup(Group group) { 80 this.group = group ; 81 } 82 public Group getGroup() { 83 return this.group ; 84 } 85 public String getInfo() { 86 return "权限编号:" + this.aid + ",名称:" + this.title + ",路径:" + this.url ; 87 } 88 } 89 public class TestAdmin { 90 public static void main (String args[]) { 91 //第一步,设置完整关系 92 //1、准备出若干个对象 93 Admin a1 = new Admin("admin","hello") ; 94 Admin a2 = new Admin("guest","hello") ; 95 Admin a3 = new Admin("jiang","hello") ; 96 Role r1 = new Role(1,"系统管理员") ; 97 Role r2 = new Role(2,"信息管理员") ; 98 Group g1 = new Group(10,"信息管理") ; 99 Group g2 = new Group(11,"用户管理") ; 100 Group g3 = new Group(12,"数据管理") ; 101 Group g4 = new Group(13,"接口管理") ; 102 Group g5 = new Group(14,"备份管理") ; 103 Action at01 = new Action(1001,"新闻发布","-") ; 104 Action at02 = new Action(1002,"新闻列表","-") ; 105 Action at03 = new Action(1003,"新闻审核","-") ; 106 Action at04 = new Action(1004,"增加用户","-") ; 107 Action at05 = new Action(1005,"用户列表","-") ; 108 Action at06 = new Action(1006,"登录日志","-") ; 109 Action at07 = new Action(1007,"雇员数据","-") ; 110 Action at08 = new Action(1008,"部门数据","-") ; 111 Action at09 = new Action(1009,"公司数据","-") ; 112 Action at10 = new Action(1010,"服务传输","-") ; 113 Action at11 = new Action(1011,"短信平台","-") ; 114 Action at12 = new Action(1012,"全部备份","-") ; 115 Action at13 = new Action(1013,"局部备份","-") ; 116 //2、设置对象之间的基本关系 117 //设置管理员与角色 118 a1.setRole(r1) ; 119 a2.setRole(r2) ; 120 a3.setRole(r2) ; 121 r1.setAdmins(new Admin[] {a1}) ; 122 r2.setAdmins(new Admin[] {a2,a3}) ; 123 //设置角色与管理员组 124 r1.setGroups(new Group[] {g1,g2,g3,g4,g5}) ; 125 r2.setGroups(new Group[] {g1,g2}) ; 126 g1.setRoles(new Role[] {r1,r2}) ; 127 g2.setRoles(new Role[] {r1,r2}) ; 128 g3.setRoles(new Role[] {r1}) ; 129 g4.setRoles(new Role[] {r1}) ; 130 g5.setRoles(new Role[] {r1}) ; 131 //设置管理员组与权限 132 g1.setActions(new Action[] {at01,at02,at03}) ; 133 g2.setActions(new Action[] {at04,at05,at06}) ; 134 g3.setActions(new Action[] {at07,at08,at09}) ; 135 g4.setActions(new Action[] {at10,at11}) ; 136 g5.setActions(new Action[] {at12,at13}) ; 137 at01.setGroup(g1) ; 138 at02.setGroup(g1) ; 139 at03.setGroup(g1) ; 140 at04.setGroup(g2) ; 141 at05.setGroup(g2) ; 142 at06.setGroup(g2) ; 143 at07.setGroup(g3) ; 144 at08.setGroup(g3) ; 145 at09.setGroup(g3) ; 146 at10.setGroup(g4) ; 147 at11.setGroup(g4) ; 148 at12.setGroup(g5) ; 149 at13.setGroup(g5) ; 150 //第二步:取出数据内容 151 System.out.println(a1.getInfo()) ; 152 System.out.println("\t|-" + a1.getRole().getInfo()) ; 153 for (int x = 0 ;x < a1.getRole().getGroups().length ;x ++ ){ 154 System.out.println("\t|-" + a1.getRole().getGroups()[x].getInfo()) ; 155 for (int y = 0 ;y< a1.getRole().getGroups()[x].getActions().length ;y ++ ){ 156 System.out.println("\t\t\t|-" + a1.getRole().getGroups()[x].getActions()[y].getInfo()) ; 157 } 158 } 159 System.out.println("-----------------------------------------------------------------") ; 160 System.out.println(g2.getInfo()) ; 161 for (int x = 0 ;x < g2.getRoles().length ; x ++ ){ 162 System.out.println("\t|-" + g2.getRoles()[x].getInfo()) ; 163 for (int y = 0 ;y < g2.getRoles()[x].getAdmins().length ;y ++ ){ 164 System.out.println("\t\t|-" + g2.getRoles()[x].getAdmins()[y].getInfo()) ; 165 } 166 } 167 } 168 }
这次使用了win7 自带的PowerShell,运行结果如下