天天看點

多對多關系 | 學習筆記

開發者學堂課程【Java 面試疑難點串講1:面試技巧及語言基礎:多對多關系】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/24/detail/502

多對多關系

内容介紹

一、類與表的映射轉換

在整個 Java 基礎部分裡面對于資料表和簡單 java 類的映射轉換處理是最為核心的,因為在這一操作之中,強化了學員的幾點要求:

引用傳遞的應用模式,讓同學徹底明白,在 java 裡面對于資料類型可以自定義

需要對資料類型劃分非常清楚;

合成設計模式的應用,就相當于組合概念:

數組的了解以及應用,同時可以認真領悟到數組的問題。現實生活中的多對多的關系:

1.你去圖書館借書:你可以同時借多本書,一本書也可以同時被多個人借,一本書也可以同時被多個人借,相當于兩個一對多關系,是以這個就可以變為多對多的應用。

2.你開車旅遊:你這一生可能開50輛車,但是每輛車都有可能有其它人繼續開;

那麼在程式裡面,對于多的概念就利用數組的方式來了解。那麼以後的學習可能有連結清單,或者是類集開發架構幫助我們實作。

package cn.mldn.demo; class Member { //

​​

每一個member的對象就表示一個人的資訊

private int mid ; private String name ; int age ; private Book [] books ;//

一個人有多本 class Book { 每一個Book類的對象就表示一本書的資訊 private String title ; private double price ; private Member[] members ;//一本書可能有多個人看過 public class TestIODemo { public static void main(String[] args) throws Exception {

注:隻要是多就使用數組來描述,但是數組本身有如下的缺陷:

數組的長度是固定的,不可改變;

對于資料的删除處理非常的複雜;

package cn.mldn.demo; class Member { //

每一個member的對象就表示一個人的資訊

private int mid ; private String name ; int age ; private Book [] books ;//

一個人有多本 class Book { 每一個Book類的對象就表示一本書的資訊 private String title ; private double price ; private Member[] members ;//一本書可能有多個人看過 public class TestIODemo { public static void main(String[] args) throws Exception {

//[

資料表實體表定義] 首先定義一個個對象的類的實體(對象),現在彼此之間沒有任何的聯系

Member memA = new Member(1,"

老張",68) ; Member memB = new Member(2,"老李",18) ; Member memC = new Member(3,"老王",56) ; Book b1 = new Book("Java開發實戰經典",79.8); Book b2 = new Book("Java WEB開發實戰經典",69.8); Book b3 = new Book("Oracle開發實戰經典",89.8); //[資料表關系表定義] ,資料的取出在以後的開發中會在[資料層]出現 //根據多對多來定義關系,以後會有資料庫動态對應,這個時候會有外鍵來限制 memA. setBooks(new Book[] {b1,b2} ); memB. setBooks(new Book[] {b2,b3} ); memC. setBooks(new Book[] {b1,b3} ); b1.setMembers(new Member[] {memA, memC}); b2.setMembers (new Member[]{memA, memB}); b3.setMembers(new Member[] {memB, memC}); //就需要依據關系輸出,就是顯示層或控制層的要求

//

輸出一個人的所有讀書的資訊 for (int х=0;х< memA.getBooks().length ; x++) 

System.out.println(memn

);