国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java復習之對象一對多關系與對象多對一關系

2019-11-06 07:01:49
字體:
來源:轉載
供稿:網友

這篇博客主要是在集合的基礎上學習一下對象的一對多關系與對象的多對一關系。

1.對象的一對多關系

我們拿古代皇帝與后宮佳麗來舉一個例子,皇帝只有一個,而佳麗卻有三千之多。皇帝與后宮佳麗之間的關系就是一對多的關系,同時,后宮佳麗與皇帝之間的關系是多對一的關系。

Demo:

public class Emperor { PRivate String name; private String title; //一對多關系 private Set<Concubine> concubines; public Set<Concubine> getConcubines() { return concubines; } public void setConcubines(Set<Concubine> concubines) { this.concubines=concubines; } public Emperor(String title, String name) { this.title = title; this.name = name; } public String getName() { return name; } public String getTitle() { return title; } public void setName(String name) { this.name = name; } public void setTitle(String title) { this.title = title; } @Override public String toString() { return "Emperor{" + "name='" + name + '/'' + ", title='" + title + '/'' + '}'; }}public class Concubine { private String name; private String jobs; // private Emperor emperor; public Emperor getEmperor() { return emperor; } //多對一關系 public void setEmperor(Emperor emperor) { this.emperor = emperor; } public Concubine(String name, String jobs) { this.name = name; this.jobs = jobs; } public String getName() { return name; } public String getJobs() { return jobs; } public void setName(String name) { this.name = name; } public void setJobs(String jobs) { this.jobs = jobs; } @Override public String toString() { return "Concubine{" + "name='" + name + '/'' + ", jobs='" + jobs + '/'' + '}'; }}public class OneToManyDemo { public static void main(String args[]) { Emperor e =new Emperor("威哥","威武"); Concubine c1=new Concubine("小白","答應"); Concubine c2=new Concubine("小寶","貴人"); Concubine c3=new Concubine("軒","皇貴妃"); /** * 關聯關系 */ //獲得concubines集合 e.setConcubines(new HashSet<Concubine>()); //向集合中添加元素 //相互添加進行設置,皇帝對象里面添加妃子,妃子設置皇帝 e.getConcubines().add(c1); e.getConcubines().add(c2); e.getConcubines().add(c3); c1.setEmperor(e); c2.setEmperor(e); c2.setEmperor(e); //通過皇帝得到妃子 System.out.println("皇帝:"+e.getName()+"年號:"+e.getTitle()); Set<Concubine> set=e.getConcubines(); for (Concubine concubine:set) { System.out.println(concubine); } }}

其實仔細看一下代碼的實現過程也不難,就在皇帝類中關聯妃子的對象,并實現妃子對象的獲得與修改的方法,同樣在妃子類中關聯皇帝的對象,并添加對象的get與set方法。在實現類中,使用皇帝的對象調用妃子的set方法為皇帝綁定多個妃子對象,使用妃子對象的調用皇帝的set的方法,妃子綁定皇帝。

2.對象的多對多關系

我們再舉一個生活中的例子,老師與學生的例子,老師教多個學生,學生被多個老師教,老師與同學之間便形成了多對多的關系。

ublic class Teacher { private String name; private int age; //表示多對多關系 private ArrayList<Student> students=new ArrayList<Student>(); public ArrayList<Student> getStudents() { return students; } public void setStudents(ArrayList<Student> students) { this.students = students; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public Teacher(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Teacher{" + "name='" + name + '/'' + ", age=" + age + '}'; }}public class Student { private String name; private int age; //表示多對多關系 private ArrayList<Teacher> teachers =new ArrayList<Teacher>(); public ArrayList<Teacher> getTeachers() { return teachers; } public void setTeachers(ArrayList<Teacher> teachers) { this.teachers = teachers; } public Student(String name, int age) { this.name = name; this.age = age; } public int getAge() { return age; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Student{" + "name='" + name + '/'' + ", age=" + age + '}'; }}public class ManyToManyDemo { public static void main(String args[]) { Teacher t1 =new Teacher("白老師",18); Teacher t2=new Teacher("蒼老師",28); Student s1 =new Student("小白",15); Student s2=new Student("小黑",19); //通過get,set方法添加元素,實現多對多 t1.getStudents().add(s1); t1.getStudents().add(s2); t2.getStudents().add(s1); t2.getStudents().add(s2); s1.getTeachers().add(t1); s1.getTeachers().add(t2); s2.getTeachers().add(t1); s2.getTeachers().add(t2); }}

實現的原理與對象的多對一的實現原理是差不多的,不過就是在另外一個類中也是聲明對象的集合,而不只是單個對象。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高密市| 金阳县| 务川| 乌什县| 滦平县| 天全县| 同德县| 项城市| 吴川市| 菏泽市| 隆德县| 溆浦县| 鄂尔多斯市| 武夷山市| 类乌齐县| 盘山县| 新民市| 辽宁省| 元朗区| 建瓯市| 富源县| 东宁县| 二连浩特市| 邵阳市| 尤溪县| 惠水县| 安顺市| 邻水| 嘉荫县| 日土县| 镇平县| 景宁| 灵台县| 建德市| 韶关市| 山阴县| 中卫市| 老河口市| 三台县| 临泽县| 天台县|