Tài liệu Lập trình hướng đối tượng & C++ - Chương 1: Lập trình hướng đối tượng: LẬP TRèNH HƯỚNG ðỐI TƯỢNG
Chương 1
lttlan.tdu@gmail.com
1
Nội dung
• Lập trỡnh thụng thường.
• Lập trỡnh hướng ủối tượng.
• Unified Modeling Language - UML.
2
Lập trỡnh thụng thường
• Lập trỡnh tuyến tớnh
– Tư duy theo lối tuần tự, ủơn giản.
– ðơn luồng và cỏc cụng việc ủược thực hiện tuần
tự trong luồng ủú.
– Tồn tại trong modul nhỏ của phương phỏp lập
trỡnh khỏc.
– Khụng giải quyết ủược cỏc yờu cầu phức tạp.
3
Lập trỡnh thụng thường (tt)
• Lập trỡnh cấu trỳc
– Cấu trỳc dữ liệu: cỏch tổ chức dữ liệu, mụ tả bài
Cấu trỳc dữ liệu + Giải thuật = Chương trỡnh
toỏn dưới dạng ngụn ngữ lập trỡnh.
– Giải thuật: một quy trỡnh ủể thực hiện một cụng
việc xỏc ủịnh.
4
Lập trỡnh thụng thường (tt)
• Lập trỡnh cấu trỳc (tt)
– Phõn chia chương trỡnh chớnh thành cỏc chương
trỡnh con cho phự hợp với yờu cầu, chức năng và
mục ủớch của mỗi bài toỏn
– Giải thuật luụn phụ thuộc chặt chẽ vào cấu trỳc
dữ liệu
5
Lập trỡnh hướng ủối tượng
• Một số khỏi niệm cơ bản
• Lập trỡ...
15 trang |
Chia sẻ: putihuynh11 | Lượt xem: 639 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Lập trình hướng đối tượng & C++ - Chương 1: Lập trình hướng đối tượng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH HƯỚNG ðỐI TƯỢNG
Chương 1
lttlan.tdu@gmail.com
1
Nội dung
• Lập trình thơng thường.
• Lập trình hướng đối tượng.
• Unified Modeling Language - UML.
2
Lập trình thơng thường
• Lập trình tuyến tính
– Tư duy theo lối tuần tự, đơn giản.
– ðơn luồng và các cơng việc được thực hiện tuần
tự trong luồng đĩ.
– Tồn tại trong modul nhỏ của phương pháp lập
trình khác.
– Khơng giải quyết được các yêu cầu phức tạp.
3
Lập trình thơng thường (tt)
• Lập trình cấu trúc
– Cấu trúc dữ liệu: cách tổ chức dữ liệu, mơ tả bài
Cấu trúc dữ liệu + Giải thuật = Chương trình
tốn dưới dạng ngơn ngữ lập trình.
– Giải thuật: một quy trình để thực hiện một cơng
việc xác định.
4
Lập trình thơng thường (tt)
• Lập trình cấu trúc (tt)
– Phân chia chương trình chính thành các chương
trình con cho phù hợp với yêu cầu, chức năng và
mục đích của mỗi bài tốn
– Giải thuật luơn phụ thuộc chặt chẽ vào cấu trúc
dữ liệu
5
Lập trình hướng đối tượng
• Một số khái niệm cơ bản
• Lập trình hướng đối tượng
Object Oriented Programming – OOP
• Các đặc điểm của OOP
6
Một số khái niệm cơ bản
• ðối tượng (Object)
– Trong thế giới thực:
• đối tượng là một thc th (entity) cụ thể mà thơng
thường ta cĩ thể sờ, nhìn thấy hay cảm nhận được.
– Trong lập trình:
• Dùng để mơ tả 1 người, sự vật hay khái niệm.
• ðối tượng là cái mà ứng dụng muốn đề cập đến.
• Trong hệ thống hướng đối tượng, mọi thứ đều là đối
tượng.
7
Một số khái niệm cơ bản (tt)
• ðối tượng trong thế giới thực
Trạng thái:
• màu
• hãng sản xuất
• model
• giá
•
Hành động:
• Dừng
• Chạy
• Tăng tốc
•Thắng
•
xe hơi
8
Một số khái niệm cơ bản (tt)
• ðối tượng trong thế giới thực (tt)
– Mọi đối tượng đều cĩ trạng thái (state) và hành
động (behavior)
9
Một số khái niệm cơ bản (tt)
• ðối tượng trong lập trình
– Thuộc tính, đặc tính, dữ liệu (attribute,
property, data):
• Trình bày, mơ tả các đặc điểm của đối tượng.
– Phương thức, ứng xử, hàm (method,
behavior, function):
• Liên quan đến những thứ đối tượng làm.
• Tác động lên dữ liệu của đối tượng.
10
Một số khái niệm cơ bản (tt)
Thuộc tính:
•tiêu đề
•nội dung
•kích thước
•màu
Phương thức:
•vẽ
•di chuyển
•đổi kích thước
•đĩng,
11 12
Một số khái niệm cơ bản (tt)
Thuộc tính:
•Màu lá
•Màu thân
•Chiều cao
•Tọa độ
Phương thức:
•vẽ
13
Một số khái niệm cơ bản (tt)
• Thể hiện (instance)
– Thuộc tính được xác định giá trị cụ thể.
– ðối tượng cụ thể gọi là một thể hiện.
ðối tượng (object) là một thực thể
phần mềm bao bọc các thuộc tính
bởi các phương thức liên quan.
ðối tượng Xe đạp
(là 1 thể hiện)
14
Một số khái niệm cơ bản (tt)
• Lớp (class)
– Là mẫu (prototype) của các đối tượng cùng
kiểu.
– Là khuơn để đổ ra các đối tượng.
– ðịnh nghĩa các thuộc tính và phương thức
chung cho các đối tượng cĩ cùng loại.
VD: Lớp XeDap là thiết kế chung cho các đối
tượng xe mini, xe địn, xe đầm, xe đua, xe leo
núi,
15
Một số khái niệm cơ bản (tt)
• Lớp (class)
– Lớp tạo ra đối tượng: bằng cách gán giá trị cụ
thể cho các thuộc tính.
• Lớp được tạo ra khi biên dịch
• ðối tượng tạo ra khi thực thi chương trình.
ðối tượng là một thể hiện (instance) của 1 lớp
16
NhanVien
– Mã nhân viên
– Họ và tên
– Năm sinh
– Nghề nghiệp
– ðịa chỉ
– Hệ số lương
– Chức vụ
+ Làm việc ()
+ Nghỉ phép ()
+ Lãnh lương ()
Ơng NVA Bà TTB Ơng LVC
17
Một số khái niệm cơ bản (tt)
• Truyền thơng báo
– Thơng báo (message): là 1 lời yêu cầu 1 hoạt
động.
– Thơng báo bao gồm:
• ðối tượng nhận thơng điệp.
• Hoạt động (tên của phương thức thực hiện).
• Chi tiết thực hiện (giá trị các tham số).
– Truyền thơng báo: kích hoạt hàm cùng tên
trên 1 đối tượng để yêu cầu thơng tin.
18
NhanVien
– Mã nhân viên
– Họ và tên
– Năm sinh
– Nghề nghiệp
NhanVien
– 8494
– NVA
– 1970
– Ths Tin học
– ðịa chỉ
– Hệ số lương
– Chức vụ
+ Làm việc ()
+ Nghỉ phép ()
+ Lãnh lương ()
Ơng NVA
– ðH Tây ðơ
– 3.04
– Giảng viên
NVA.nghỉ phép
(22/9/2009)
19
Lập trình hướng đối tượng
• Một số khái niệm cơ bản
Lập trình hướng đối tượng
(Object Oriented Programming – OOP)
• Các đặc điểm của OOP
20
Lập trình hướng đối tượng (OOP)
Thuộc tính + Hàm = Đối tượng
Các thể hiện, đặc tính,
trạng thái của đối
tượng
Các hoạt động,
thao tác của đối
tượng
Mục tiêu chính
Phân tích bài tốn thành nhiều đối tượng.
Quan tâm đến dữ liệu hơn thủ tục.
Dữ liệu được bảo vệ (che giấu) và khơng thể truy
xuất từ bên ngồi đối tượng.
21
Lập trình hướng đối tượng (tt)
ðối tượng 1
Dữ liệu
Hàm
Dữ liệu và thủ tục được
xử lý chặc chẽ với nhau.
Quan tâm đến mối liên
hệ giữa thủ tục và dữ
liệu.
Dữ liệu
Hàm
Dữ liệu
Hàm
ðối tượng 3
ðối tượng 2
Dễ chỉnh sửa, thêm mới
dữ liệu và hàm trong 1
đối tượng.
Mục tiêu là tăng cường
khả năng sử dụng lại.
22
Lập trình hướng đối tượng (tt)
• Sự trừu tượng hĩa (abstraction)
23
Lập trình hướng đối tượng (tt)
• Sự trừu tượng hĩa (abstraction)
– Là bước tiến hĩa tiếp theo từ lập trình cấu trúc.
– Chỉ quan tâm đến những đặc điểm cần thiết
(phớt lờ đi những chi tiết) tùy vào ngữ cảnh:
VD: Phân tích thơng tin của 1 người:
- Trong ngữ cảnh làm việc trong trường.
- Trong ngữ cảnh học tại trường? NhanVien
– Mã nhân viên
– Họ và tên
– Năm sinh
– 24
OOP
25
Các đặc điểm của OOP
• Tính bao gĩi
• Tính thừa kế
• Ảo hĩa
• ða hình
26
Tính bao gĩi
• Là đặc điểm chủ yếu của OOP.
• Che giấu việc thực thi chi tiết của 1 đối
tượng.
• Ngăn sự tác động từ đối tượng khác đến
dữ liệu.
27
Ẩn thơng tin là 1 tính
chất của bao gĩi
28
Tính bao gĩi (tt)
– Thể hiện sự kết hợp chặc chẽ giữa thuộc tính
và phương thức.
– ðịnh nghĩa lớp: là việc đĩng gĩi nhiều thành
phần lại với nhau.
– Xác định và giới hạn các đường truy cập đến
lớp.
29
Tính bao gĩi (tt)
– Các thuộc tính truy cập:
– Dùng chung (public): cĩ quyền được truy xuất
từ bất kỳ vị trí nào.
– Dùng riêng (private): chỉ truy xuất được từ bên
trong lớp (trong các phương thức của lớp đĩ).
–ðược bảo vệ (protected): chỉ truy xuất được từ
bên trong lớp và các lớp thừa kế từ nĩ.
30
Các đặc điểm của OOP
• Tính thừa kế (inheritance)
– Nhĩm các đặc tính chung lại với nhau.
– Sử dụng lại (kế thừa) các đặc trưng chung
(thuộc tính + phương thức) của 1 lớp cho
trước.
– Ích lợi:
• Chia sẻ và sử dụng lại những lớp đã cĩ:
– Tận dụng lại các thuộc tính chung.
– Tận dụng lại các thao tác tương tự.
• Thiết kế lớp gọn nhẹ, đơn giản hơn.
31
Các đặc điểm của OOP
• Tính thừa kế (tt)
– Chú ý: tránh thiết kế sai về mặt ý nghĩa.
VD: Lớp XeHơi thừa kế từ lớp BánhXe là SAI.
– Lớp con phải chính là lớp cha, ngồi ra cịn
phải cĩ thêm những đặc trưng riêng của nĩ:
• Thêm hàm hoặc thêm thuộc tính
• Tái định nghĩa hàm của lớp cha, đổi kiểu thuộc
tính
• Dùng hàm ảo
32
Con người
– Tên
– Giới tính
Sinh viên
– Lớp học
– ðiểm thi Tốn
+ Tính điểm TB()
Nhân viên
– Nghề nghiệp
– Hệ số lương
+ Nghỉ phép()
33
Các đặc điểm của OOP
• Tính thừa kế (tt)
– Lớp con sẽ cĩ tất cả các thành phần của lớp
cha nhưng chỉ được quyền truy xuất thành
phần mà lớp cha cho phép (public +
protected).
– Lớp cha khơng thể truy xuất được thành phần
của lớp con.
34
Các đặc điểm của OOP
• Tính thừa kế (tt)
– Các thành phần của lớp con sẽ che đi các
thành phần trùng tên trong lớp cha.
• Khi truy xuất thành phần trùng tên đĩ sẽ truy xuất
thành phần của lớp con.
• Muốn truy xuất thành phần của lớp cha, phải chỉ
rõ.
– Trong C++: ::
– Trong Java: super.
35
Các đặc điểm của OOP
• Tính thừa kế
– Thừa kế đơn: thừa kế từ 1 lớp
– Thừa kế bội: thừa kế từ 2 lớp trở lên.
• Tận dụng được nhiều thành phần cĩ sẵn.
• Dễ gây ra xung đột, cạnh tranh.
36
Các đặc điểm của OOP
• Tính thừa kế (tt)
– Thừa kế bội
37
Các đặc điểm của OOP
• Ảo hĩa (virtualization)
– Kể tên trong lớp cha một ứng xử chung (hàm
ảo – virtual, abstract) cho tập hợp các lớp
con.
– Khi nhận yêu cầu, tùy vào đối tượng thuộc
lớp nào sẽ cĩ ứng xử riêng (thực thi hàm
tương ứng của lớp đĩ).
38
Các đặc điểm của OOP
• Ảo hĩa
Vd:
1. “V”: cho tập hợp các đối tượng hình học (điểm,
đường thẳng, hình trịn, hình vuơng, )
2. “Kêu”: cho tập hợp các con vật (chĩ, mèo, gà,
vịt, )
3. “V nhà”: cho tập hợp các học sinh (đi bộ, đi xe
đạp, đi xe gắn máy, đi xe buýt, )
39
Các đặc điểm của OOP
• Ảo hĩa
– Hàm ảo:
• Khơng nhất thiết phải cần định nghĩa ở lớp cha.
• Phải được định nghĩa lại trong lớp con.
– Lớp ảo:
• Chỉ dùng khai báo các hàm ảo bên trong.
• Khơng được dùng để tạo ra đối tượng.
40
Các đặc điểm của OOP
• Tính đa hình (polymorphism)
– Các đối tượng khác nhau khi nhận chung 1 yêu
cầu vẫn cĩ thể cĩ những ứng xử khác nhau.
– Kỹ thuật sử dụng: hàm ảo
ðường Thẳng Hình Trịnðiểm Hình Vuơng
“Vẽ”
41
Các đặc điểm của OOP
• Tính đa hình
– Các hành động cùng tên thực thi trên cùng 1 đối
tượng vẫn cĩ thể thực hiện khác nhau (cĩ kết
quả khác nhau) tùy thuộc vào ngữ cảnh.
– Kỹ thuật sử dụng: tái định nghĩa hàm
• Hàm trùng tên
• Khác tham số (số lượng, thứ tự, kiểu)
42
43
UML - Unified Modeling Language
44
UML
• Giới thiệu về UML
• Các loại biểu đồ trong UML
• Biểu đồ lớp
45
Giới thiệu UML
– Tạm dịch là ngơn ngữ mơ hình hĩa thống nhất.
– Ra đời vào năm 1997 và hiện nay đang được sử dụng rất
phổ biến.
– Bao gồm một hệ thống các ký hiệu đồ họa, biểu đồ (sơ
đồ) thống nhất dùng để thiết kế các hệ thống thơng tin
(IS) theo hướng đối tượng.
– ðược sử dụng cho các giai đoạn phân tích, thiết kế, triển
khai và kiểm thử phần mềm.
– Các CaseTool (Rational Rose, System Architect, Argo
UML, Visual Paradigm for UML, Umbrello) hỗ trợ UML
trong việc phát sinh chương trình tự động cho các ngơn
ngữ OOP.
46
Các loại biểu đồ trong UML
• UML Diagram
– Use Cases Diagram (biểu đồ tình huống sử
dụng)
– Class Diagram (biểu đồ lớp)
– Sequence Diagram (biểu đồ trình tự)
– Collaboration Diagram (biểu đồ cộng tác)
– State Diagram (biểu đồ trạng thái)
– Component Diagram (biểu đồ thành phần)
– Deployment Diagram (biểu đồ triển khai)
47
Sơ đồ lớp (Class Diagram)
• Lớp
48
Sơ đồ lớp (Class Diagram)
• Quan hệ kết hợp (Association)
49
Sơ đồ lớp (Class Diagram)
• Quan hệ kết hợp (Association)
50
Sơ đồ lớp (Class Diagram)
• Quan hệ kết hợp
51
Sơ đồ lớp (Class Diagram)
• Quan hệ tập hợp (Aggregation)
52
Sơ đồ lớp (Class Diagram)
• Quan hệ tổng hợp (Composition)
Composition là 1 dạng
Aggregation đặc biệt trong đĩ
cái tổng thể sẽ được cấu
thành hoặc hủy bỏ từ những
thành phần của nĩ.
53
Sơ đồ lớp (Class Diagram)
• Thừa kế (inheritance)
54
Bài tập
• Mơ hình hĩa việc bán vé tại rạp chiếu phim theo
gĩc nhìn của người mua vé / người quản lý
• Tiệm tạp hĩa: Chủ tiệm cần quản lý việc mua
bán hàng hĩa (viết, tập) trong cửa hàng để biết
– Hàng nào mua vào giá bao nhiêu?
– Hàng nào bán ra và giá bao nhiêu?
Áp dụng kỹ thuật lập trình hướng đối tượng và tính
thừa kế của nĩ để dựng khung đối tượng cho người
phụ trách mua bán điền thơng tin vào và sử dụng
phương thức cho việc mua bán
55
Bài tập về nhà
• Chọn các đối tượng ngồi thực tế cĩ liên
quan với nhau để xây dựng khung (thuộc
tính, phương thức) các đối tượng với đầy đủ
các đặc điểm:
– Tính thừa kế.
– Ảo hĩa.
– ða hình.
• Cho 3 ví dụ cụ thể cho từng đối tượng
• Hạn nộp: 12:00 PM 06/10/2009 (mail hoặc
giấy)
56
Bài nộp
• Mail:
– Subject: C++ Bai 1
–
– File word hoặc pdf
• Giấy
– C++ Bai 1
–
57
Các file đính kèm theo tài liệu này:
- chapter1_3226_1993462.pdf