You are on page 1of 29

PHÂN TÍCH VÀ THIẾT KẾ

HƯỚNG ĐỐI TƯỢNG

BUỔI 2:
CÁC KHÁI NIỆM CƠ BẢN VỀ
PHẠM THỊ MINH THƯƠNG
HƯỚNG ĐỐI TƯỢNG 1
MỤC TIÊU

Cung cấp cho sinh viên những kiến thức về:


• Các khái niệm cơ bản về hướng đối tượng: Đối tượng (object), Lớp (class),…
• Các nội dung quan trọng trong hướng đối tượng: Tổng quát hóa, chuyên biệt
hóa, lớp trừu tượng, lớp cụ thể,…

PHẠM THỊ MINH THƯƠNG 2


NỘI DUNG

• Các khái niệm cơ bản


• Các nguyên tắc cơ bản

PHẠM THỊ MINH THƯƠNG 3


CÁC KHÁI NIỆM CƠ BẢN

• Object – đối tượng


• Class – lớp
• Polymorphism – Tính đa hình
• Inheritance – Tính thừa kế

PHẠM THỊ MINH THƯƠNG 4


OBJECT

• Là một biểu diễn từ thế giới thực sang thể hiện của tin học.
• Là một sự trừu tượng hoá, một khái niệm có ý nghĩa trong lãnh vực ứng
dụng.
• Diễn đạt một thực thể vật lý, hoặc một thực thể quan niệm, hoặc một thực thể
phần mềm.
• Đối tượng có thể là một thực thể hữu hình trực quan (ví dụ : một con người,
một vị trí, một sự vật,…) hoặc một khái niệm, một sự kiện (ví dụ : phòng
ban, bộ phận, kết hôn, đăng ký, …).

PHẠM THỊ MINH THƯƠNG 5


OBJECT

PHẠM THỊ MINH THƯƠNG 6


OBJECT

• Đối tượng = Định danh (Identity) + Trạng thái + Hành vi


• Định danh thể hiện sự tồn tại duy nhất của đối tượng
• Trạng thái là các đặc tính của đối tượng tại một thời điểm
• Hành vi thể hiện các chức năng của đối tượng

PHẠM THỊ MINH THƯƠNG 7


OBJECT

Ví dụ: Một đối tượng xe mô tô

Trạng thái:
100cc
38.000KM
90KM/H
Đỏ Trạng thái

Môtô No 43K3-5592

Định danh Hành vi:


Chạy()
Dừng()
Tắtmáy() Hành vi

PHẠM THỊ MINH THƯƠNG 8


LIÊN KẾT GIỮA CÁC ĐỐI TƯỢNG

• Mối kết hợp (association) - liên kết ngữ nghĩa

Giảng dạy
Giáo viên A Lớp học X

Lái
Tài xế B Xe tải Y

PHẠM THỊ MINH THƯƠNG 9


LIÊN KẾT GIỮA CÁC ĐỐI TƯỢNG

• Phân cấp (hierarchy) - liên kết cấu trúc

Một xe mô tô

Bánh xe 1 Bánh xe 2 Động cơ

PHẠM THỊ MINH THƯƠNG 10


CLASS

• Lớp là khái niệm dùng để mô tả một tập hợp các đối tượng có cùng một cấu
trúc, cùng hành vi và có cùng những mối quan hệ
• Lớp = các thuộc tính + các phương thức

PHẠM THỊ MINH THƯƠNG 11


CLASS

• Trình bày của lớp: Là một hình chữ nhật bao gồm ba phần (không bắt buộc)

PHẠM THỊ MINH THƯƠNG 12


CLASS

• Ví dụ: lớp Course -> trình bày lớp Course?

PHẠM THỊ MINH THƯƠNG 13


CLASS

• Một đối tượng là một thể hiện (instance) của lớp


• Giá trị là thể hiện của thuộc tính
• Liên kết là thể hiện của kết hợp

PHẠM THỊ MINH THƯƠNG 14


CLASS

• Ví dụ: quan hệ kết hợp giữa các lớp

PHẠM THỊ MINH THƯƠNG 15


CLASS

• Tính thừa kế (inheritance)


• Một lớp được xây dựng từ một hoặc nhiều lớp khác bằng việc chia sẽ các
thuộc tính và phương thức
• Lớp con thừa kế các thuộc tính và phương thức từ lớp cha
• Tổng quát hóa/chuyên biệt hóa
• Tổng quát hóa (generalization): đặt các tính chất chung của các lớp khác nhau vào
một lớp cha
• Chuyên biệt hóa (specialization): tạo ra một lớp con có các tính chất riêng từ lớp
cha

PHẠM THỊ MINH THƯƠNG 16


CLASS

• Đơn thừa kế: một lớp con chỉ thừa kế từ một lớp cha duy nhất
XeÔtô

Chuyên biệt hóa

Tổng quát hóa


XeKhách XeTải
Lớp trừu tượng hay lớp chung: XeÔtô
Lớp cụ thể hay lớp chuyên biệt: XeKhách
Lớp chuyên biệt có thể thay thế lớp chung trong tất cả các ứng
dụng. Ví dụ: Ôtô tải là một ôtô.
PHẠM THỊ MINH THƯƠNG 17
CLASS

• Đa thừa kế: một lớp con kế thừa từ nhiều lớp cha.


Person

Personnel Student

Reseacher Teacher

Phd candidate

PHẠM THỊ MINH THƯƠNG 18


CLASS

• Đa thừa kê: vấn đề: đụng độ tên thuộc tính


X Y
a a

Z
a của X
a của Y

PHẠM THỊ MINH THƯƠNG 19


CLASS

Ưu điểm của thừa kế


 Phân loại các lớp: các lớp được phân loại, sắp xếp theo một thứ
bậc để dễ quản lí
 Xây dựng các lớp: các lớp con được xây dựng từ các lớp cha
 Tiết kiệm thời gian xây dựng, tránh lặp lại thông tin

PHẠM THỊ MINH THƯƠNG 20


CLASS

Tính đa hình (polymorphism): của phương thức, tức là khả năng các phương
thức khác nhau được thực hiện để trả lời cùng một yêu cầu

Mỗi lớp con thừa kế đặc tả các phương thức từ lớp cha, và các phương thức
này có thể được sữa đổi trong lớp con để thực hiện các chức năng riêng trong
lớp đó

Một phương thức (cùng một tên phương thức) có nhiều dạng (định nghĩa)
khác nhau trong các lớp khác nhau

PHẠM THỊ MINH THƯƠNG 21


CLASS

Ví dụ: tính đa hình


ĐaGiác

DienTich()

HìnhVuông HìnhTamGiác

DienTich() DienTich()

PHẠM THỊ MINH THƯƠNG 22


PACKAGE

• Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm.
• Một phần tử trong mô hình có thể chứa các phần tử khác.
• Dùng để
• Tổ chức mô hình đang phát triển
• Một đơn vị trong quản trị cấu hình

PHẠM THỊ MINH THƯƠNG 23


PACKAGE

• Ví dụ: hệ thống quản lý thư viện có thể tổ chức thành bốn gói: gói giao diện,
gói nghiệp vụ, gói CSDL và gói tiện ích

PHẠM THỊ MINH THƯƠNG 24


CÁC NGUYÊN TẮC CƠ BẢN

• Trừu tượng hóa – Abstraction


• Tính đóng gói – Encapsulation
• Che dấu cài đặt bên trong với clients -> tăng tính mềm dẻo
• Tính đơn thể - Modularity
• Phân chia nhỏ một vấn đề phức tạp thành nhiều phần nhỏ, đơn giản hơn, quản lý được
• Tính phân cấp – Hierarchy

PHẠM THỊ MINH THƯƠNG 25


THẢO LUẬN

1. Theo anh/chị, sức mạnh của hướng đối tượng là gì?


2. Các nguyên tắc cơ bản của hướng đối tượng là gì?
3. Đối tượng là gì? Class là gì? Những điểm khác nhau của chúng?
4. Tính đa hình? Thỏa nguyên tắc OO nào?
5. Package? Thỏa nguyên tắc OO nào?

PHẠM THỊ MINH THƯƠNG 26


THẢO LUẬN

• Anh/chị nhìn thấy bao nhiêu lớp.

PHẠM THỊ MINH THƯƠNG 27


THẢO LUẬN

• Anh/chị hiểu biểu đồ thế nào?


• Giả sử, bạn cần phương tiện vận chuyển mới (xe máy), bạn chỉnh sửa biểu đồ
như thế nào?

PHẠM THỊ MINH THƯƠNG 28


THẢO LUẬN

• Hãy trình bày các thông tin sau:


• Động vật
• Thuộc tính: tuổi, giống
• Phương thức: là động vật có vú
• Vịt
• Thuộc tính: màu long
• Phương thức: bơi, kêu
• Ngựa
• Thuộc tính: là hoang dã
• Phương thức: chạy

PHẠM THỊ MINH THƯƠNG 29

You might also like