Bài giảng Lập trình hướng đối tượng - Chương 1: Lập trình hướng đối tượng
lượt xem 3
download
Bài giảng Lập trình hướng đối tượng Chương 1: Lập trình hướng đối tượng nhằm trình bày về lập trình thông thường, lập trình hướng đối tượng, Unified Modeling Language - UML... cùng tham khảo bài giảng để hiểu sâu hơn về lập trình hướng đối tượng. Chúc các bạn học tốt.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng - Chương 1: Lập trình hướng đối tượng
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trần Công Án
57 p | 89 | 13
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 174 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 140 | 9
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 2: Lập trình hướng đối tượng
53 p | 46 | 8
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 80 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 119 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 103 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - ThS. Trịnh Thành Trung
53 p | 86 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 116 | 6
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 100 | 6
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 63 | 5
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 99 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 103 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 139 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 11 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 15 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Nguyễn Khanh Văn
0 p | 83 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn