1. 程式人生 > >Java中多對多映射關系

Java中多對多映射關系

img return bsp gets alt 獲取 image 課程 log

多對對的映射,可以用學生和課程進行演示。一個學生可以選擇多個課程,一個課程又對應了多個學生

定義學生類

class Stu{
    private String name;
    private String num;
    private Course[] course;
    public Stu() {}
    public Stu(String name,String num) {
        this.name = name;
        this.num = num;
    }
    public String getName() {
        return
name; } public void setName(String name) { this.name = name; } public String getNum() { return num; } public void setNum(String num) { this.num = num; } public Course[] getCourse() { return course; } public void setCourse(Course[] course) {
this.course = course; } public String getInfo() { return "姓名 :"+name+" 學號 :"+num; } }

定義課程 類

class Course{
    private String name;
    private Stu[] stu;
    public Course() {}
    public Course(String name) {
        this.name = name;
    }
    public String getName() {
        
return name; } public void setName(String name) { this.name = name; } public Stu[] getStu() { return stu; } public void setStu(Stu[] stu) { this.stu = stu; } public String getInfo() { return "課程 :"+name; } }

在main方法測試

首先定義Stu和Course對象,分別有三個

        Stu s1 = new Stu("張三","001");
        Stu s2 = new Stu("李四","002");
        Stu s3 = new Stu("王五","003");
        
        Course c1 = new Course("Java");
        Course c2 = new Course("php");
        Course c3 = new Course("Python");

設置彼此的關系,每個對象都有多個對象對應

        //設置學生和課程的關系
        s1.setCourse(new Course[]{c1,c2});
        s2.setCourse(new Course[]{c1,c3});
        s3.setCourse(new Course[]{c2,c3});
        
        //相應的課程設置與學生的關系
        c1.setStu(new Stu[]{s1,s2});
        c2.setStu(new Stu[]{s1,s3});
        c3.setStu(new Stu[]{s2,s3});

根據學生,獲取課程信息

        System.out.println(s1.getInfo()+" 同學選擇的課程有");
        for(int i=0; i<s1.getCourse().length; i++) {
            System.out.println(s1.getCourse()[i].getInfo());
        }

運行

技術分享圖片

根據課程,獲取學生信息

        System.out.println(c2.getInfo()+" 選擇這門課程的學生信息");
        for(int i=0; i<c2.getStu().length; i++) {
            System.out.println(c2.getStu()[i].getInfo());
        }

運行

技術分享圖片

Java中多對多映射關系