Xem mẫu

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. Bài n p • Mail: – Subject: C++ Bai 1 – – File word ho c pdf • Gi y – C++ Bai 1 – 57
nguon tai.lieu . vn