〖Java类集〗_范例讲解:多对多关系笔记
2014-10-01 23:14
246 查看
〖Java类集〗_范例讲解:多对多关系笔记
分类: Java〖Java类集〗_范例讲解:多对多关系笔记
实例要求:
一个学生可以选多门课程,一门课程可以有多个学生参加,那么这就是一个典型的多对多关系。
要完成本程序,首先应该定义两个类:学生信息类Student、课程信息类Course,在一个学生类中存在一个集合,保存全部的课程,而在课程中也要存在一个类集,保存全部的学生。
3、本实例主要采用的知识
1.List集合
2.引用传递
3.Iterator
4、具体内容
Course.java
[java] view
plaincopyprint?
import java.util.List;
import java.util.ArrayList;
public class Course{
private String name;
private int Credit;
private List<Student> allStudents;
public Course(){
this.allStudents = new ArrayList<Student>();
}
public Course(String name,int Credit){
this();
this.name = name;
this.Credit = credit;
}
public List<Student> getAllStudents(){
return this.allStudents;
}
public void setName(String name){
this.name = name;
}
public void setCredit(int credit){
this.credit = credit;
}
public String getName(){
return this.name;
}
public itn getCredit(){
return this.credit;
}
public String toString(){
return "课程名称:"+this.name+"; 课程学分:"+this.credit;
}
}
Student.java
[java] view
plaincopyprint?
import java.util.List ;
import java.util.ArrayList ;
public class Student{
private String name ;
private int age ;
private List<Course> allCourses ;
public Student(){
this.allCourses = new ArrayList<Course>() ;
}
public Student(String name,int age){
this() ;
this.name = name ;
this.age = age ;
}
public List<Course> getAllCourses(){
return this.allCourses ;
}
public void setName(String name){
this.name = name ;
}
public void setAge(int age){
this.age = age ;
}
public String getName(){
return this.name ;
}
public int getAge(){
return this.age ;
}
public String toString(){
return "学生姓名:" + this.name + ";年龄:" + this.age ;
}
};
[java] view
plaincopyprint?
import java.util.Iterator ;
public class TestMore{
public static void main(String args[]){
Course c1 = new Course("英语",3 ) ; // 第一门课程
Course c2 = new Course("计算机",5) ; // 第二门课程
Student s1 = new Student("张三",20) ;
Student s2 = new Student("李四",21) ;
Student s3 = new Student("王五",22) ;
Student s4 = new Student("赵六",23) ;
Student s5 = new Student("孙七",24) ;
Student s6 = new Student("钱八",24) ;
// 第一门课程有三个学生参加
c1.getAllStudents().add(s1) ;
c1.getAllStudents().add(s2) ;
c1.getAllStudents().add(s6) ;
s1.getAllCourses().add(c1) ;
s2.getAllCourses().add(c1) ;
s6.getAllCourses().add(c1) ;
// 第二门课程有六个学生参加
c2.getAllStudents().add(s1) ;
c2.getAllStudents().add(s2) ;
c2.getAllStudents().add(s3) ;
c2.getAllStudents().add(s4) ;
c2.getAllStudents().add(s5) ;
c2.getAllStudents().add(s6) ;
s1.getAllCourses().add(c2) ;
s2.getAllCourses().add(c2) ;
s3.getAllCourses().add(c2) ;
s4.getAllCourses().add(c2) ;
s5.getAllCourses().add(c2) ;
s6.getAllCourses().add(c2) ;
// 输出一门课程的信息,观察一门课程有多少个学生参加\
System.out.println(c1) ;
Iterator<Student> iter1 = c1.getAllStudents().iterator() ;
while(iter1.hasNext()){
Student s = iter1.next() ;
System.out.println("\t|- " + s) ;
}
// 通过学生找到学生参加的课程
System.out.println(s6) ;
Iterator<Course> iter2 = s6.getAllCourses().iterator() ;
while(iter2.hasNext()){
Course c = iter2.next() ;
System.out.println("\t|- " + c) ;
}
}
};
相关文章推荐
- 〖Java类集〗_范例讲解:一对多关系笔记
- 〖Java类集〗_范例讲解:多对多关系笔记
- Java类集 _范例讲解:多对多关系
- Java类集 _范例讲解:一对多关系
- Java类集学习(七)应用范例(多对多的关系)
- 〖Java类集〗_范例讲解:一对多关系笔记
- Java类集 - 一对多关系范例
- Java类集学习(六)应用范例(一对多的关系)
- 【Java类集】_foreach及Enumeration接口笔记(实例亲测)
- 【Java类集】_SortedMap类笔记
- 【Java类集】_Map接口笔记(实例亲测)
- 【Java类集】_Set接口笔记(实例亲测)
- 【Java类集】_属性类:Properties笔记
- 专题笔记--Java 类集框架
- 【Java类集】_ListIterator接口笔记(实例亲测)
- 【Java类集】_Iterator接口笔记(实例亲测)
- Java学习笔记45:Java 线程与主线程之间的变量关系
- 浪潮优派培训java笔记:第9章 类集Collections(容器)
- [笔记][Java 4 android] [035~044] 内部类、线程和类集框架
- 类集范例(一对多关系和多对多关系)