Xem mẫu
- N i dung
Chương 1 • L p trình thông thư ng.
• L p trình hư ng ñ i tư ng.
L P TRÌNH HƯ NG ð I TƯ NG
• Unified Modeling Language - UML.
9/30/2009 1 2
L p trình thông thư ng L p trình thông thư ng (tt)
tt)
• L p trình tuy n tính • L p trình c u trúc
– Tư duy theo l i tu n t , ñơn gi n.
C u trúc d li u + Gi i thu t = Chương trình
Chương
– ðơn lu ng và các công vi c ñư c th c hi n tu n
t trong lu ng ñó.
– C u trúc d li u: cách t ch c d li u, mô t bài
– T n t i trong modul nh c a phương pháp l p toán dư i d ng ngôn ng l p trình.
trình khác.
– Gi i thu t: m t quy trình ñ th c hi n m t công
– Không gi i quy t ñư c các yêu c u ph c t p. vi c xác ñ nh.
3 4
- L p trình thông thư ng (tt)
tt) L p trình hư ng ñ i tư ng
• L p trình c u trúc (tt) • M t s khái ni m cơ b n
• L p trình hư ng ñ i tư ng
– 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à Object Oriented Programming – OOP
m c ñích c a m i bài toán • Các ñ c ñi m c a OOP
– Gi i thu t luôn ph thu c ch t ch vào c u trúc
d li u
5 6
M t s khái ni m cơ b n M t s khái ni m cơ b n (tt)
tt)
• ð i tư ng (Object) • ð i tư ng trong th gi i th c
– Trong th gi i th c:
• ñ i tư ng là m t th c th (entity) c th mà thông Tr ng thái:
thư ng ta có th s , nhìn th y hay c m nh n ñư c. • màu
– Trong l p trình: • hãng s n xu t
• Dùng ñ mô t 1 ngư i, s v t hay khái ni m. • model
• giá Hành ñ ng:
• ð i tư ng là cái mà ng d ng mu n ñ c p ñ n.
xe hơi •… • D ng
• Trong h th ng hư ng ñ i tư ng, m i th ñ u là ñ i
tư ng. • Ch y
• Tăng t c
•Th ng
•…
7 8
- M t s khái ni m cơ b n (tt)
tt) M t s khái ni m cơ b n (tt)
tt)
• ð i tư ng trong th gi i th c (tt) • ð i tư ng trong l p trình
– M i ñ i tư ng ñ u có tr ng thái (state) và hành – Thu c tính, ñ c tính, d li u (attribute,
ñ ng (behavior) 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.
9 10
M t s khái ni m cơ b n (tt)
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)
tt) M t s khái ni m cơ b n (tt)
tt)
• Th hi n (instance)
Thu c tính: – Thu c tính ñư c xác ñ nh giá tr c th .
•Màu lá
– ð i tư ng c th g i là m t th hi n.
•Màu thân
•Chi u cao
•T a ñ
Phương th c:
•v
ð i tư ng (object) là m t th c th ð i tư ng Xe ñ p
ph n m m bao b c các thu c tính (là 1 th hi n)
n)
13 14
b i các phương th c liên quan.
M t s khái ni m cơ b n (tt)
tt) M t s khái ni m cơ b n (tt)
tt)
• L p (class) • L p (class)
– Là m u (prototype) c a các ñ i tư ng cùng – L p t o ra ñ i tư ng: b ng cách gán giá tr c
ki u. th cho các thu c tính.
– Là khuôn ñ ñ ra các ñ i tư ng. • L p ñư c t o ra khi biên d ch
– ð nh nghĩa các thu c tính và phương th c • ð i tư ng t o ra khi th c thi chương trình.
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
ð i tư ng là m t th hi n (instance) c a 1 l p
núi, …
15 16
- M t s khái ni m cơ b n (tt)
NhanVien
• Truy n thông báo
– Mã nhân viên
– Thông báo (message): là 1 l i yêu c u 1 ho t
– H và tên
ñ ng.
– Năm sinh
– Ngh nghi p
– Thông báo bao g m:
• ð i tư ng nh n thông ñi p.
– ð a ch
• Ho t ñ ng (tên c a phương th c th c hi n).
– H s lương
• Chi ti t th c hi n (giá tr các tham s ).
– Ch c v
+ Làm vi c () Ông NVA Bà TTB Ông LVC – Truy n thông báo: kích ho t hàm cùng tên
+ Ngh phép ()
trên 1 ñ i tư ng ñ yêu c u thông tin.
+ Lãnh lương ()
17 18
L p trình hư ng ñ i tư ng
NhanVien NhanVien
• M t s khái ni m cơ b n
– Mã nhân viên – 8494
– H và tên – NVA
L p trình hư ng ñ i tư ng
– Năm sinh – 1970 (Object Oriented Programming – OOP)
– Ngh nghi p – Ths Tin h c
• Các ñ c ñi m c a OOP
– ð a ch – ðH Tây ðô
– H s lương – 3.04
– Ch c v – Gi ng viên
+ Làm vi c () Ông NVA
+ Ngh phép () NVA.ngh phép
+ Lãnh lương () (22/9/2009)
19 20
- L p trình hư ng ñ i tư ng (OOP) L p trình hư ng ñ i tư ng (tt)
tt)
D li u và th t c ñư c
Thu c tính + Hàm = Đ i tư ng
tư
D li u x lý ch c ch v i nhau.
Các th hi n, đ c tính, Các ho t đ ng,
tr ng thái c a đ i thao tác c a đ i Quan tâm ñ n m i liên
tư ng tư ng
M c tiêu chính Hàm
h gi a th t c và d
ð i tư ng 1 li u.
Phân tích bài toán thành nhi u ñ i tư ng.
D li u D ch nh s a, thêm m i
Quan tâm ñ n d li u hơn th t c. D li u d li u và hàm trong 1
D li u ñư c b o v (che gi u) và không th truy Hàm ñ i tư ng.
Hàm
xu t t bên ngoài ñ i tư ng. ð i tư ng 2 M c tiêu là tăng cư ng
ð i tư ng 3
kh năng s d ng l i.
21 22
L p trình hư ng ñ i tư ng (tt)
tt) L p trình hư ng ñ i tư ng (tt)
tt)
• S tr u tư ng hóa (abstraction) • 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
23 –… 24
- OOP Các ñ c ñi m c a OOP
• Tính bao gói
• Tính th a k
• o hóa
• ða hình
25 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.
n thông tin là 1 tính
ch t c a bao gói
27 28
- Tính bao gói (tt)
tt) Tính bao gói (tt)
tt)
– Các thu c tính truy c p:
– Th hi n s k t h p ch c ch gi a thu c tính
và phương th c. – Dùng chung (public): có quy n ñư c truy xu t
t b t kỳ v trí nào.
– ð nh nghĩa l p: là vi c ñóng gói nhi u thành
– Dùng riêng (private): ch truy xu t ñư c t bên
ph n l i v i nhau.
trong l p (trong các phương th c c a l p ñó).
– Xác ñ nh và gi i h n các ñư ng truy c p ñ n – ðư c b o v (protected): ch truy xu t ñư c t
l p. bên trong l p và các l p th a k t nó.
29 30
Các ñ c ñi m c a OOP Các ñ c ñi m c a OOP
• Tính th a k (inheritance) • Tính th a k (tt)
– Nhóm các ñ c tính chung l i v i nhau. – Chú ý: tránh thi t k sai v m t ý nghĩa.
– S d ng l i (k th a) các ñ c trưng chung VD: L p XeHơi th a k t l p BánhXe là SAI.
(thu c tính + phương th c) c a 1 l p cho
trư c. – L p con ph i chính là l p cha, ngoài ra còn
– Ích l i: ph i có thêm nh ng ñ c trưng riêng c a nó:
• Chia s và s d ng l i nh ng l p ñã có: • Thêm hàm ho c thêm thu c tính
– T n d ng l i các thu c tính chung. • Tái ñ nh nghĩa hàm c a l p cha, ñ i ki u thu c
tính
– T n d ng l i các thao tác tương t .
• Dùng hàm o
• Thi t k l p g n nh , ñơn gi n hơn.
31 32
- Con ngư i Các ñ c ñi m c a OOP
– Tên • Tính th a k (tt)
– Gi i tính
– 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).
Sinh viên Nhân viên – L p cha không th truy xu t ñư c thành ph n
c a l p con.
– L ph c – Ngh nghi p
– ði m thi Toán – H s lương
+ Tính ñi m TB() + Ngh phép()
33 34
Các ñ c ñi m c a OOP Các ñ c ñi m c a OOP
• Tính th a k (tt) • Tính th a k
– Các thành ph n c a l p con s che ñi các – Th a k ñơn: th a k t 1 l p
thành ph n trùng tên trong l p cha. – Th a k b i: th a k t 2 l p tr lên.
• Khi truy xu t thành ph n trùng tên ñó s truy xu t
• T n d ng ñư c nhi u thành ph n có s n.
thành ph n c a l p con.
• D gây ra xung ñ t, c nh tranh.
• Mu n truy xu t thành ph n c a l p cha, ph i ch
rõ.
– Trong C++: ::
– Trong Java: super.
.
35 36
- Các ñ c ñi m c a OOP Các ñ c ñi m c a OOP
• Tính th a k (tt) • o hóa (virtualization)
– Th a k b i – 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 ñó).
37 38
Các ñ c ñi m c a OOP Các ñ c ñi m c a OOP
• o hóa • o hóa
Vd: – Hàm o:
1. “V ”: cho t p h p các ñ i tư ng hình h c (ñi m, • Không nh t thi t ph i c n ñ nh nghĩa l p cha.
ñư ng th ng, hình tròn, hình vuông, …) • Ph i ñư c ñ nh nghĩa l i trong l p con.
2. “Kêu”: cho t p h p các con v t (chó, mèo, gà, – L p o:
v t, …) • Ch dùng khai báo các hàm o bên trong.
3. “V nhà”: cho t p h p các h c sinh (ñi b , ñi xe • Không ñư c dùng ñ t o ra ñ i tư ng.
ñ p, ñi xe g n máy, ñi xe buýt, …)
39 40
- Các ñ c ñi m c a OOP Các ñ c ñi m c a OOP
• Tính ña hình (polymorphism) • Tính ña hình
– Các ñ i tư ng khác nhau khi nh n chung 1 yêu – Các hành ñ ng cùng tên th c thi trên cùng 1 ñ i
c u v n có th có nh ng ng x khác nhau. tư ng v n có th th c hi n khác nhau (có k t
– K thu t s d ng: hàm o qu khác nhau) tùy thu c vào ng c nh.
ði m ðư ng Th ng Hình Tròn Hình Vuông – 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)
“V ”
41 42
UML - Unified Modeling Language
43 44
- UML Gi i thi u UML
– T m d ch là ngôn ng mô hình hóa th ng nh t.
• Gi i thi u v UML
– Ra ñ i vào năm 1997 và hi n nay ñang ñư c s d ng r t
ph bi n.
• Các lo i bi u ñ trong UML
– 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
• Bi u ñ l p (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.
45 46
Các lo i bi u ñ trong UML Sơ ñ l p (Class Diagram)
• UML Diagram • L p
– 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 48
- Sơ ñ l p (Class Diagram) Sơ ñ l p (Class Diagram)
• Quan h k t h p (Association) • Quan h k t h p (Association)
49 50
Sơ ñ l p (Class Diagram) Sơ ñ l p (Class Diagram)
• Quan h k t h p • Quan h t p h p (Aggregation)
51 52
- Sơ ñ l p (Class Diagram) Sơ ñ l p (Class Diagram)
• Quan h t ng h p (Composition) • Th a k (inheritance)
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ó.
nó.
53 54
Bài t p Bài t p v nhà
• Mô hình hóa vi c bán vé t i r p chi u phim theo • Ch n các ñ i tư ng ngoài th c t có liên
góc nhìn c a ngư i mua vé / ngư i qu n lý quan v i nhau ñ xây d ng khung (thu c
• Ti m t p hóa: Ch ti m c n qu n lý vi c mua tính, phương th c) các ñ i tư ng v i ñ y ñ
bán hàng hóa (vi t, t p) trong c a hàng ñ bi t
các ñ c ñi m:
– Tính th a k .
– Hàng nào mua vào giá bao nhiêu?
– o hóa.
– Hàng nào bán ra và giá bao nhiêu? – ða hình.
Áp d ng k thu t l p trình hư ng ñ i tư ng và tính • Cho 3 ví d c th cho t ng ñ i tư ng
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 • H n n p: 12:00 PM 06/10/2009 (mail ho c
phương th c cho vi c mua bán 55
gi y) 56
- Bài n p
• Mail:
– Subject: C++ Bai 1
–
– File word ho c pdf
• Gi y
– C++ Bai 1
–
57
nguon tai.lieu . vn