下面要给大家分享的就是一个java一对多关系的示例,对于java一对多你都了解吗?下面就一起通过下面的文章来进行一下了解吧。
在日常生活当中可以经常简单一对多关系例子,例如,一个学校可以包含多个学生,一个学生属于一个学校,这个就是一个很典型的一对多关系,能够通过集合进行关系的表示,下面的话,就是基于集合应用的一个示例。
1、定义学生类(Student类中包含了一个School属性,表示一个学生属于一个学校,在程序运行的时候,只要传入School类的引用就可以完成这样的关系)。
import java.util.HashSet; import java.util.Iterator; public class Student { private String name; // 定义student类 private int age; // 定义name属性 private School school; // 一个学生属于一个学校 // 通过构造方法设置内容 public Student(String name, int age) { this.setName(name); this.setAge(age); } 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 School getSchool() { return school; } public void setSchool(School school) { this.school = school; } // 重写toString()方法 public String toString() { return "学生姓名:" + this.name + ":年龄" + this.age; } }
2、定义学校类(在定义学校类时定义了一个List类型的属性,并指定其泛型类型是Student类型,这样一来就表示在一个School对象当中会包含多个Student类型的引用)。
import java.util.ArrayList; import java.util.List; public class School { private String name; private List < Student > allStudents; // 一个学校有多个学生 public School() { this.allStudents = new ArrayList < Student > (); // 实例化List集合 } public School(String name) { this(); this.setName(name); } public String getName() { return name; } public void setName(String name) { this.name = name; } public List < Student > getAllStudents() { return allStudents; } public void setAllStudents(List < Student > allStudents) { this.allStudents = allStudents; } // 重写toString()方法 public String toString() { return "学校名称:" + this.name; } }
3、测试代码,设置关系。
import java.util.Iterator; public class Test { public static void main(String[] args) { // 实例化学校对象 School sch = new School("清华大学"); // 实例化学生对象 Student s1 = new Student("张三", 21); Student s2 = new Student("李四", 22); Student s3 = new Student("王五", 23); // 在学校中加入学生 sch.getAllStudents() .add(s1); sch.getAllStudents() .add(s2); sch.getAllStudents() .add(s3); // 一个学生属于一个学校 s1.setSchool(sch); s2.setSchool(sch); s3.setSchool(sch); // 输出学校信息 System.out.println(sch); // 实例化Iterator对象,用于输出全部的学生信息 Iterator < Student > ite = sch.getAllStudents() .iterator(); while (ite.hasNext()) { System.out.println("\t" + ite.next()); } } }
程序运行结果:
上面的代码先分别实例化了School和Student类的对象,之后通过两个类中的属性保存彼此的引用关系,从而形成了一个学校有多个学生,一个学生属于一个学校的一对多关系。
以上的示例你都清楚了吧,更多java实例,可以继续关注本站来进行了解呢。
推荐阅读: