Bài giảng Lập trình hướng đối tượng - Tuần 2: Đối tượng và Lớp - Nguyễn Khắc Huy

LOGO  
Đối tượng và Lớp  
Nguyễn Khắc Huy  
BMCNPM – ĐHKHTN TPHCM  
09/2018  
LOGO  
Khái niệm đối tượng và lớp.  
Tầm vực.  
Nạp chồng hàm.  
Bài tập.  
LOGO  
□ Mục tiêu của việc thiết kế 1 phần mềm:  
. Tính tái sử dụng (reusability): thiết kế các  
thành phần có thể được sử dụng trong  
nhiều phần mềm khác nhau  
. Tính mở rộng (extensibility): hỗ trợ các  
plug-ins.  
. Tính mềm dẻo (flexibility):  
• Có thể dễ dàng thay đổi khi thêm mới dữ  
liệu hay tính năng.  
• Các thay đổi không làm ảnh hưởng nhiều  
đến toàn bộ hệ thống  
LOGO  
□ Mục tiêu: xây dựng nên 1 phần mềm  
□ Quá trình thiết kế: chia phần mềm và thiết  
kế theo từng phần, từng component  
□ Trừu tượng hóa: rất cần thiết trong thiết  
kế. Cụ thể: bỏ qua những chi tiết của  
component, quan tâm các thành phần ở  
mức trừu tượng.  
□ Xác định các component: top-down  
□ Tích hợp: bottom-up. Gắn kết các  
components nhỏ lại với nhau.  
LOGO  
□ Thiết kế theo hàm/thủ tục:  
. Tìm ra các hàm/thủ tục để hoàn tất các yêu cầu  
. Kết quả là hệ thống cấu trúc và mối quan hệ giữa  
các hàm/thủ tục  
□ Thiết kế theo module  
. Phân tích và tìm ra các module bao gồm thành  
phần dữ liệu và các hàm/thủ tục liên quan  
. Cách thực hiện dựa vào việc gom nhóm các  
thành phần tương tự nhau về ý nghĩa, phạm vi…  
LOGO  
□ Trừu tượng hóa dữ liệu và các hàm/thủ  
tục liên quan  
□ Chia hệ thống ra thành các lớp/đối tượng  
□ Mỗi lớp/đối tượng có các tính năng và  
hành động chuyên biệt  
□ Các lớp có thể được sử dụng để tạo ra  
nhiều đối tượng cụ thể  
LOGO  
Thế giới thực  
Trừu tượng hóa  
Phần mềm  
Dữ liệu  
Thuộc tính  
Thực thể  
Hành động  
hàm  
L
Lập trình hướng đối tượng là phương pháp  
lập trình dựa trên kiến trúc lớp (class)  
và đối tượng (object)  
LOGO  
□ Đối tượng trong thế giới thực: là một thực  
thể cụ thể mà ta có thể sờ, nhìn thấy hay  
cảm nhận được.  
□ Đối tượng phần mềm: dùng để biểu diễn  
các đối tượng trong thế giới thực.  
□ Mỗi đối tượng bao gồm 2 thành phần:  
thuộc tính và hành động.  
LOGO  
Chương trình là cỗ máy phức tạp.  
Cấu thành từ nhiều loại vật liệu.  
Vật liệu cơ bản: cấu trúc, hàm
Đã đủ tạo ra chương trình tốt?  
Vật liệu mới: Đối tượng!!  
LOGO  
Đặc trưng của đối tượng:  
• Bao gồm cả dữ liệu và xử lý.  
• Thuộc tính (attribute): dữ liệu của đối  
tượng.  
• Phương thức (method): xử lý của đối  
tượng.  
Cấu trúc đối tượng:  
• Hộp đen: thuộc tính trong, phương thức  
ngoài.  
• Bốn nhóm phương thức:  
– Nhóm tạo hủy.  
Thuộc tính  
– Nhóm truy xuất thông tin.  
– Nhóm xử lý nghiệp vụ.  
Phương thức  
– Nhóm toán tử.  
LOGO  
Vì sao là hướng đối tượng?  
• Hướng thủ tục (procedural oriCeánctebdư)ớ.c nấu ăn  
– Lấy hành động làm trung tâm.  
Verb  
Lặt  
Object  
Rau  
Cá  
– Hàm là xương sống.  
- Lặt (Rau)  
- Ướp (Cá)  
- Kho (Cá)  
Ướp  
Nấu  
Luộc  
- Luộc (Rau)  
- Nấu (Cơm)  
Cơm  
Rau  
Cá  
• Hướng đối tượng (object oriented).  
Kho  
– Lấy dữ liệu làm trung tâm.  
– Đối tượng là xương sống.  
Thay đổi  
tư duy  
lập trình!!  
- Rau.Lặt  
- Cá.Ướp  
- Rau.Luộc  
- Cơm.Nấu  
- Cá.Kho  
LOGO  
Khái niệm lớp:  
Tập hợp đối tượng có cùng  
thuộc tính và phương thức  
Person1:  
Name: Peter.  
Age: 25.  
Hair Color: Brown.  
Eye Color: Brown.  
Job: Worker.  
Human:  
Name.  
Age.  
Hair Color.  
Eye Color.  
Job.  
Person2:  
Name: Thomas.  
Age: 50.  
Hair Color: White.  
Eye Color: Blue.  
Job: Teacher.  
Bản mô tả đối tượng  
Kiểu của đối tượng  
LOGO  
□ Tách biệt giữa giao tiếp và cài đặt cụ thể  
interface  
Làm cái gì?  
Làm bằng cách nào?  
Implementation  
LOGO  
□ Đối tượng là 1 thực thể phần mềm bao bọc  
các thuộc tính mô tả trạng thái và các  
phương thức liên quan.  
□ Kiểu dữ liệu lớp đối tượng: class  
Class có các tính chất sau:  
. Đóng gói: chứa đựng dữ liệu và các hàm/thủ tục  
liên quan  
. Che giấu dữ liệu: các thực thể phần mềm khác  
không can thiệp trực tiếp vào dữ liệu bên trong  
được mà phải thông qua các phương thức cho  
phép  
LOGO  
□ Che giấu dữ liệu và các “giải thuật” cụ thể  
ở bên trong lớp (class)  
public  
(methods)  
private  
(data)  
lớp đối tượng  
LOGO  
□ Xác định các đối tượng: xem xét các thực  
thể trong phạm vi bài toán  
□ Xác định các hành động tương ứng:  
. Xác định hành động của riêng lớp đối  
tượng này hay là sự liên hệ của nhiều lớp  
đối tượng?  
. …  
LOGO  
□ Theo Abbott & Booch:  
. Tìm các danh từ hay cụm danh từ  
. Không phải tất cả danh từ đều là đối tượng  
□ Theo Coad & Yourdon:  
. Xác định các cá thể hay các nhóm  
□ Theo Ross, các đối tượng thường nằm trong  
các nhóm sau:  
. Người, địa điểm, vật, tổ chức, khái niệm, sự kiện  
LOGO  
□ Xác định các đối tượng  
. Xây dựng hệ thống âm nhạc cho phép tra  
cứu và lưu trữ các bài hát với tên bài, ca  
sĩ, nhạc sĩ, thứ tự xếp hạng và loại bài  
hát.  
LOGO  
Sử dụng đối tượng trong C++:  
• Khai báo lớp: file .h  
class <Tên lớp>  
{
<Khai báo thuộc tính>;  
<Khai báo phương thức>;  
};  
• Cài đặt phương thức: file .cpp  
– Như cài đặt hàm, kèm theo tên lớp.  
• Tạo đối tượng:  
– Như khai báo biến, kiểu dữ liệu là lớp.  
• Truy xuất thành phần đối tượng:  
– Như truy xuất thành phần cấu trúc.  
Tải về để xem bản đầy đủ
pdf 41 trang myanh 26380 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Tuần 2: Đối tượng và Lớp - Nguyễn Khắc Huy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_tuan_2_doi_tuong_va_lop.pdf