您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第三季学习笔记-对象一对多与多对多关系
发布时间:2017-08-10 15:31:36编辑:雪饮阅读()
一对多设计示例:
主程序:
package com.vince.onetomany;
import java.util.Set;
public class OneToManyDemo {
public static void main(String[] args) {
Emperor e=new Emperor("皇帝001",25);
Concubine c1=new Concubine("妃子001",25);
Concubine c2=new Concubine("妃子002",26);
Concubine c3=new Concubine("妃子003",27);
//皇帝关联妃子
e.getConcubines().add(c1);
e.getConcubines().add(c2);
e.getConcubines().add(c3);
//妃子关联皇帝
c1.setEmperor(e);
c2.setEmperor(e);
c3.setEmperor(e);
System.out.println("皇帝姓名:"+e.getName()+",他的妃子们:");
Set<Concubine> set=e.getConcubines();
for (Concubine concubine : set) {
System.out.println(concubine.getName());
}
}
}
皇帝类:
package com.vince.onetomany;
import java.util.HashSet;
import java.util.Set;
//皇帝类
public class Emperor {
private String name;
private int age;
//一对多关系
private Set<Concubine> concubines=new HashSet<Concubine>();
public String getName() {
return name;
}
public Set<Concubine> getConcubines() {
return concubines;
}
public void setConcubines(Set<Concubine> concubines) {
this.concubines = concubines;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Emperor() {
super();
// TODO 自动生成的构造函数存根
}
public Emperor(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Emperor [name=" + name + ", age=" + age + "]";
}
}
妃子类:
package com.vince.onetomany;
//妃子类
public class Concubine {
private String name;
private int age;
//多对一关系
private Emperor emperor;
public Emperor getEmperor() {
return emperor;
}
public void setEmperor(Emperor emperor) {
this.emperor = emperor;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Concubine() {
super();
// TODO 自动生成的构造函数存根
}
public Concubine(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Concubine [name=" + name + ", age=" + age + "]";
}
}
多对多设计示例:
主程序:
package com.vince.onetomany;
import java.util.List;
public class ManyToMany {
public static void main(String[] args) {
//实例化两个老师
Teacher t1=new Teacher("卡卡西老师",25);
Teacher t2=new Teacher("阿斯玛老师",30);
//实例化两个学生
Student s1=new Student("鸣人",13);
Student s2=new Student("佐助",19);
//两个老师关联两个学生
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);
System.out.println("老师'"+t1.getName()+"'的学生有:");
List<Student> set=t1.getStudents();
for (Student student : set) {
System.out.println(student);
}
System.out.println("老师'"+t2.getName()+"'的学生有:");
List<Student> set2=t2.getStudents();
for (Student student2 : set2) {
System.out.println(student2);
}
System.out.println("学生'"+s1.getName()+"'的老师有:");
List<Teacher> set3=s1.getTeachers();
for (Teacher teacher3 : set3) {
System.out.println(teacher3);
}
System.out.println("学生'"+s2.getName()+"'的老师有:");
List<Teacher> set4=s2.getTeachers();
for (Teacher teacher4 : set4) {
System.out.println(teacher4);
}
}
}
学生类:
package com.vince.onetomany;
import java.util.ArrayList;
import java.util.List;
public class Student {
private String name;
private int age;
private List<Teacher> teachers=new ArrayList<Teacher>();
public List<Teacher> getTeachers() {
return teachers;
}
public void setTeachers(List<Teacher> teachers) {
this.teachers = teachers;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
public Student() {
super();
// TODO 自动生成的构造函数存根
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
}
老师类:
package com.vince.onetomany;
import java.util.ArrayList;
import java.util.List;
public class Teacher {
private String name;
private int age;
private List<Student> students=new ArrayList<Student>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
@Override
public String toString() {
return "Teacher [name=" + name + ", age=" + age + "]";
}
public Teacher() {
super();
// TODO 自动生成的构造函数存根
}
public Teacher(String name, int age) {
super();
this.name = name;
this.age = age;
}
}
关键字词:javase,对象一对多与多对多关系