Mối quan hệ “Kết nối” – Association:

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình Java: Phần 1 - TS. Vũ Hữu Tiến (Trang 47 - 49)

Trong một lớp, các thuộc tính có thể có các kiểu dữ liệu nguyên tố (int, boolean,…) nhưng cũng có thể có kiểu dữ liệu là một đối tượng được định nghĩa bởi một lớp khác.

A

value: B

Hình 3. 2 Mối quan hệ kết nối

Hình trên mô tả lớp “A” có thuộc thính là “value”. Thuộc tính value không phải là kiểu dữ liệu cơ bản mà nó có kiểu là một đối tượng của lớp “B”. Như vậy lớp A “uses” lớp B. Động từ “uses” được sử dụng để mô tả mối quan hệ này.

Một cách khác để biểu diễn thông tin trên bằng biểu đồ mối quan hệ kết nối như sau:

Hình 3. 3 Mối quan hệ kết nối

48 Mối quan hệ được biểu diễn bằng mũi tên một chiều có nghĩa là lớp A có thể truy cập lớp B nhưng ngược lại không đúng.

Về nguyên tắc, chúng ta cũng phải sử dụng mối quan hệ này nếu trong lớp có biến kiểu String vì kiểu String không phải là kiểu cơ bản. Tuy nhiên, lớp String được định nghĩa sẵn tại Java platform nên nó có thể được coi như kiểu cơ bản.

Một cách khác dùng để biểu diễn mối quan hệ “Kết nối” với “Tính nhiều”:

Hình 3. 4 Mối quan hệ kết nối với tính nhiều

Mô tả trên nghĩa là lớp “OneClass” chứa một mảng các đối tượng có kiểu “OtherClass”.

Ví dụ: Lớp Catalogue sử dụng lớp ItemForSale

Biểu đồ trên mô tả như sau: Hệ thống gồm 1 lớp “Catalogue” và 1 lớp “ItemForSale”.

Lớp “ItemForSale” có thuộc tính “name” kiểu String và thuộc tính “price” kiểu int. Lớp này cũng bao gồm phương thức setPrice() với một tham số newPrice kiểu integer.

Lớp “Catalogue” có một thuộc tính “listOfItem” với kiểu là “ItemForSale”. Biến listOfItem có thể chứa 0 hoặc nhiều các mặt hàng để bán nên biến này sẽ là một mảng có kiểu là ItemForSale. Lớp “Catalogue” bao gồm một phương thức addItem() với tham số “item” có kiểu là ItemForSale. Phương thức này có chức năng thêm mặt hàng vào danh sách listOfItems.

Như vậy, về nguyên tắc lớp Catalogue được truy cập tới lớp ItemForSale để xem, thêm, xóa các mặt hàng. Tuy nhiên, một mặt hàng không thể truy cập tới lớp Catalogue để thêm mặt hàng. OneClass 1 1..* OtherClass 1 0..* Catalogue +addItem(item : ItemForSale) ItemForSale -name : String -price : int +setPrice(newPrice : int) listOfItems

49

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình Java: Phần 1 - TS. Vũ Hữu Tiến (Trang 47 - 49)

Tải bản đầy đủ (PDF)

(66 trang)