〖Java類集〗_範例講解:多對多關係筆記

來源:互聯網
上載者:User

〖Java類集〗_範例講解:多對多關係筆記

執行個體要求:

一個學生可以選多門課程,一門課程可以有多個學生參加,那麼這就是一個典型的多對多關係。
要完成本程式,首先應該定義兩個類:學生資訊類Student、課程資訊類Course,在一個學生類中存在一個集合,儲存全部的課程,而在課程中也要存在一個類集,儲存全部的學生。

3、本執行個體主要採用的知識

1.List集合
2.引用傳遞
3.Iterator

4、具體內容

Course.java

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

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 ;    }};

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) ;        }    }};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.