Bài giảng: Phân tích & Thiết kế hướng đối tượng dùng UML - Trương ĐH Bach Khoa Tp. HCM
lượt xem 10
download
Máy tính số là thiết bị có thể thực hiện 1 số hữu hạn các chức năng cơ bản (tập lệnh), cơ chế thực hiện các lệnh là tự động từ lệnh đầu cho đến lệnh cuối cùng. Danh sách các lệnh được thực hiện này được gọi là chương trình. Bất kỳ công việc ngoài đời nào cũng có thể được chia thành trình tự nhiều công việc nhỏ hơn.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng: Phân tích & Thiết kế hướng đối tượng dùng UML - Trương ĐH Bach Khoa Tp. HCM
- Trương Đai hoc Bach Khoa Tp. Hö̀ Chñ Minh Khoa Cöng Nghï Thöng Tin Mön hoc PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT ĐH Bach Khoa Tp.HCM Slide 1 Nöi dung mön hoc 1. n lai 1 s ́ khai ni m cơ ban cua hương ₫ ́i tương, cac ng n ngư hương ₫ ́i tương thương dung, cơ ch ́ dịch cac type/class sang ng n ngư c ̉ ₫i ̉n (ng n ngư may). 2. n lai qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t. 3. n lai ng n ngư UML ₫ươc dung ₫ ̉ mi u ta cac artifacts cua qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t. 4. Giơi thi u cac m ̃u thi ́t k ́ hương ₫ ́i tương ₫ươc dung ph ̉ bi ́n trong cac ưng dung hi n hanh va cac ưng dung tương lai. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT ĐH Bach Khoa Tp.HCM Slide 2 1
- Tai liïu tham khao chñnh [1] The Unified Software Development Process, Ivar Jacabson, Grady Booch, James Rumbaugh, Addison-Wesley, 1999. [2] Software Engineering - A practitioner's approach, R.S. Pressman, McGraw-Hill, 1997 [3] Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1998. [4] OMG Unified Modeling Language Specification, version 1.3, Object Management Group (www.omg.org), 1999 [5] UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998 [6] Object-Oriented Software Engineering, A Use-Case Driven Approach, I. Jacobson, ACM Press/Addison-Wesley, 1992 [7] Object-Oriented Analysis and Design with Applications, G. Booch, The Benjamin Cummings Publishing Company, 1994 Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT ĐH Bach Khoa Tp.HCM Slide 3 Trương Đai hoc Bach Khoa Tp. Hö̀ Chñ Minh Khoa Cöng Nghï Thöng Tin Chương 1 CAC KHAI NIÏM CƠ BAN CUA MÖ HÒNH HƯƠNG ĐÖI TƯƠNG Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 4 2
- Nöi dung 1.1 Tư lêp trònh co cếu truc ₫ḯn OOP 1.2 Đö́i tương, thuöc tñnh, tac vu. 1.3 Abstract type va class. 1.4 Tñnh bao ₫ong. 1.5 Tñnh thưa kḯ va cơ chḯ 'override'. 1.6 Tñnh bao göp. 1.7 Thöng ₫iïp, tñnh ₫a hònh va kiï̉m tra kiï̉u. 1.8 Tñnh tö̉ng quat hoa. 1.9 Tñnh vưng bï̀n. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 5 Tư lêp trònh co cếu truc ₫ḯn OOP 1. May t nh s ́ la thi ́t bị co th ̉ thưc hi n 1 s ́ hưu han cac chưc năng cơ ban (t p l nh), cơ ch ́ thưc hi n cac l nh la tư ₫ ng tư l nh ₫ ̀u cho ₫ ́n l nh cu ́i cung. Danh sach cac l nh ₫ươc thưc hi n nay ₫ươc goi la chương tr nh. 2. b ́t ky c ng vi c ngoai ₫ơi nao cung co th ̉ ₫ươc chia thanh tr nh tư nhi ̀u c ng vi c nho hơn. Tr nh tư cac c ng vi c nho nay ₫ươc goi la giai thu t giai quy ́t c ng vi c ngoai ₫ơi. M ̃i c ng vi c nho hơn cung co th ̉ ₫ươc chia nho nưa,... ⇒ c ng vi c ngoai ₫ơi la 1 tr nh tư cac l nh may (chương tr nh). 3. v ́n ₫ ̀ m ́u ch ́t cua vi c dung may t nh giai quy ́t v ́n ₫ ̀ ngoai ₫ơi la l p tr nh. Cho ₫ ́n nay, l p tr nh la c ng vi c cua con ngươi (vơi sư trơ giup ngay cang nhi ̀u cua may t nh). 4. cac l nh cua chương tr nh (code) phai tham khao hoăc xư ly (truy xu ́t) th ng tin (dư li u). Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 6 3
- Tư lêp trònh co cếu truc ₫ḯn OOP 5. Dư li u cua 1 chương tr nh co th ̉ r ́t nhi ̀u va ₫a dang. Đ ̉ truy xu ́t ₫ung 1 dư li u ta c ̀n : - t n nh n dang. - ki ̉u dư li u mi u ta c ́u truc dư li u. - t ̀m vưc truy xu ́t mi u ta giơi han khach hang truy xu ́t dư li u. 6. Chương tr nh c ̉ ₫i ̉n = giai thu t + dư li u. 7. Chương tr nh con (function, subroutine,...) cho phep c ́u truc chương tr nh, sư dung lai code... 8. Chương tr nh c ̉ ₫i ̉n co c ́u truc ph n c ́p như sau : Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 7 Tư lêp trònh co cếu truc ₫ḯn OOP Chương tr nh = c ́u truc dư li u + giai thu t module global data (package) local data entry 'start' of module local data of function Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 8 4
- Tư lêp trònh co cếu truc ₫ḯn OOP Chương tr nh = t p cac ₫ ́i tương tương tac nhau ₫ ́i tương (object) local data entry of object local data of operation Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 9 Tö̉ng quat vï̀ hương ₫ö́i tương M h nh hương ₫ ́i tương giơi thi u 1 quan ₫i ̉m l p tr nh (va ph n t ch/thi ́t k ́) khac hăn so vơi trương phai c ̉ ₫i ̉n (co c ́u truc). Băt ₫ ̀u nhen nhom vao nhưng năm cu ́i 60s va ₫ ́n ₫ ̀u 90s th trơ n n r ́t ph ̉ bi ́n trong c ng nghi p ph ̀n m ̀m. Nhưng ng n ngư hương ₫ ́i tương ₫ ̀u ti n : Smalltalk, Eiffel. Sau ₫o xu ́t hi n th m : Object Pascal, C++, Java, C#,… H nh thanh cac phương phap ph n t ch/thi ́t k ́ hương ₫ ́i tương. Va hi n nay ta co 1 qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t dưa tr n ng n ngư UML. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 10 5
- Đö́i tương (Object) M h nh ₫ ́i tương quan ni m chương tr nh bao g ̀m cac ₫ ́i tương sinh s ́ng va tương tac vơi nhau. Đ ́i tương bao g ̀m : thu c t nh (dư li u) : mang 1 gia trị nh ́t ₫ịnh tai tưng thơi ₫i ̉m. tac vu (operation) : thưc hi n 1 c ng vi c nao ₫o. Implementation (class) Interface (abstract type) Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 11 Kiï̉u trưu tương (Abstract type) Abstract type (type) ₫ịnh nghĩa interface sư dung ₫ ́i tương. Interface la t p cac entry ma b n ngoai co th ̉ giao ti ́p vơi ₫ ́i tương. Dung signature ₫ ̉ ₫ịnh nghĩa m ̃i entry, Signature g ̀m : t n method (operation) danh sach ₫ ́i s ́ h nh thưc, m ̃i ₫ ́i s ́ ₫ươc ₫ăc ta bơi 3 thu c t nh : t n, type va chi ̀u chuy ̉n ₫ ng (IN, OUT, INOUT). ₫ăc ta chưc năng cua method (thương la chu th ch). Dung abstract type (chư kh ng phai class) ₫ ̉ ₫ăc ta ki ̉u cho bi ́n, thu c t nh, tham s ́ h nh thưc. User kh ng c ̀n quan t m ₫ ́n class (hi n thưc cu th ̉) cua ₫ ́i tương. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 12 6
- Class (Implementation) Class ₫ịnh nghĩa chi ti ́t hi n thưc ₫ ́i tương : ₫ịnh nghĩa cac thu c t nh dư li u : gia trị cua t ́t ca thu c t nh xac ₫ịnh trang thai cua ₫ ́i tương. ki ̉u cua thu c t nh co th ̉ la type c ̉ ₫i ̉n hay abstract type, trong trương hơp sau thu c t nh chưa tham khao ₫ ́n ₫ ́i tương khac. coding cac method va cac internal function. Định nghĩa cac method tao va xoa ₫ ́i tương. Định nghĩa cac method constructor va destructor. User kh ng c ̀n quan t n ₫ ́n class cua ₫ ́i tương. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 13 Vñ du vï̀ class trong Java class abstract HTMLObject { protected static final int LEFT = 0; protected static final int MIDDLE = 1; protected static final int RIGHT = 2; private int alignment = LEFT; protected Vector objects = null; HTMLObject( ){ // constructor objects = new Vector (5); } public void setAlignment( int algnmt ) { alignment = algnmt; } public int getAlignment( ) { return alignment; } public abstract String toHTML( ); // abstract operation } Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 14 7
- Tñnh bao ₫ong (encapsulation) Bao ₫ong : che d ́u moi chi ti ́t hi n thưc cua ₫ ́i tương, kh ng cho b n ngoai th ́y va truy xu ́t ⇒ t nh ₫ c l p cao giưa cac ₫ ́i tương (hay t nh k ́t d nh - cohesion giưa cac ₫ ́i tương r ́t th ́p). che d ́u cac thu c t nh dư li u : n ́u c ̀n cho phep truy xu ́t 1 thu c t nh dư li u, ta tao 2 method get/set tương ưng ₫ ̉ giam sat vi c truy xu ́t va che d ́u chi ti ́t hi n thưc b n trong. che d ́u chi ti ́t hi n thưc cac method. che d ́u cac internal function va sư hi n thưc cua chung. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 15 Tñnh thưa kḯ (inheritance) T nh thưa k ́ cho phep giam nhe c ng sưc ₫ịnh nghĩa type/class : ta co th ̉ ₫ịnh nghĩa cac type/class kh ng phai tư ₫ ̀u ma băng cach k ́ thưa type/class co săn, ta chỉ ₫ịnh nghĩa th m cac chi ti ́t mơi ma th i (thương kha t). Đa thưa k ́ hay ₫ơn thưa k ́. M ́i quan h supertype/subtype va superclass/subclass. co th ̉ override cac method cua class cha, k ́t qua override chỉ co nghĩa trong ₫ ́i tương class con. Đ ́i tương cua class con co th ̉ ₫ong vai tro cua ₫ ́i tương cha nhưng ngươc lai thương kh ng ₫ung. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 16 8
- Vñ du vï̀ thưa kḯ va override - Java class Geometry { public Draw(Graphics g); protected int xPos, yPos; protected double xScale, yScale; protected COLORREF color; }; class Line extends Geometry { int xPos2, yPos2; // other attributes... public Draw(Graphics g) { // cac l nh ve ₫oan thăng } } Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 17 Tñnh bao göp (aggregation) 1 ₫ ́i tương co th ̉ chưa nhi ̀u ₫ ́i tương khac tao n n m ́i quan h bao g p 1 cach ₫ qui giưa cac ₫ ́i tương. Co 2 goc nh n v ̀ t nh bao g p : ngư nghĩa va hi n thưc. Goc nh n ngư nghĩa Goc nh n hi n thưc O1 O2 O2 O1 O3 O3 Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 18 9
- Vñ du vï̀ bao göp - C++ class Geometry { // abstract base class public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ) = 0; // abstract operation protected: int xPos, yPos; double xScale, yScale; COLORREF color; }; class Group : public Geometry { public: Group( ); ~Group( ); virtual void Draw( Window *pWnd ); // override private: Geometry **ppGeo; // pointer container int geoCount; }; Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 19 Thöng ₫iïp (Message) Th ng ₫i p la 1 phep goi tac vu ₫ ́n 1 ₫ ́i tương tư 1 tham khao. Th ng ₫i p bao g ̀m 3 ph ̀n : tham khao ₫ ́n ₫ ́i tương ₫ ch. t n tac vu mu ́n goi. danh sach tham s ́ thưc c ̀n truy ̀n theo (hay nh n v ̀ tư) tac vu. v du : aCircle.SetRadius (3); aCircle.Draw (pWnd); Th ng ₫i p la phương ti n giao ti ́p (hay tương tac) duy nh ́t giưa cac ₫ ́i tương. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 20 10
- Tñnh ₫a xa (Polymorphism) Cung 1 l nh gơi th ng ₫i p ₫ ́n ₫ ́i tương th ng qua cung 1 tham khao nhưng ơ vị tr /thơi ₫i ̉m khac nhau co th ̉ g y ra vi c thưc thi method khac nhau cua cac ₫ ́i tương khac nhau. T1 p1; // C1 va C2 la 2 class hi n thưc T1 ... p1 = New C1; // tao ₫ ́i tương C1, gan tham khao vao p1 p1.meth1(...); ... p1 = New C2; // tao ₫ ́i tương C2, gan tham khao vao p1 p1.meth1(...); L nh p1.meth1(...); ơ 2 vị tr khac nhau k ch hoat 2 method khac nhau cua 2 class khac nhau. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 21 Kiï̉m tra kiï̉u (type check) Chăt va dung m ́i quan h 'conformity' (tương th ch t ̉ng quat). Type A tương th ch vơi type B ⇔ A chưa moi method cua B va ưng vơi tưng method cua B : t ̀n tai 1 method cung t n trong A. danh sach ₫ ́i s ́ cua 2 method tương ưng phai băng nhau. ki ̉u ₫ ́i s ́ OUT hay gia trị return cua method trong A phai tương th ch vơi ki ̉u cua ₫ ́i s ́ tương ưng trong B. ki ̉u ₫ ́i s ́ IN cua method trong B phai tương th ch vơi ki ̉u cua ₫ ́i s ́ tương ưng trong A. ki ̉u ₫ ́i s ́ INOUT cua method trong A phai trung vơi ki ̉u cua ₫ ́i s ́ tương ưng trong B. quan h so trung hay quan h con/cha (sub/super) la trương hơp ₫ăc bi t cua quan h tương th ch t ̉ng quat. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 22 11
- Tñnh tö̉ng quat hoa (Generalization) Co 2 ngư nghĩa khac nhau cua t nh t ̉ng quat hoa : class t ̉ng quat hoa cho phep san sinh tư ₫ ng cac class b nh thương, cac class b nh thương tư no chỉ co th ̉ tao ra ₫ ́i tương. Thương dung ngư nghĩa nay trong giai ₫oan l p tr nh. ngươc vơi t nh thưa k ́ : supertype/superclass la type/class t ̉ng quat hoa cua cac con cua no. Thương dung ngư nghĩa nay trong giai ₫oan ph n t ch/thi ́t k ́ ph ̀n m ̀m. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 23 Tñnh thương tru (persistence) ₫ơi s ́ng cua 1 ₫ ́i tương ₫ c l p vơi ₫ơi s ́ng cua ph ̀n tư tao ra no. ₫ ́i tương phai t ̀n tai khi con t nh ́t 1 tham khao ₫ ́n no trong h th ́ng. ₫ ́i tương phai bị xoa khi kh ng con tham khao nao ₫ ́n no, v tai thơi ₫i ̉m nay ₫ ́i tương la rac. Vi c xac ₫ịnh ch nh xac 1 ₫ ́i tương co phai la rac hay kh ng la 1 vi c phưc tap code ưng dung kh ng ₫ươc phep lam, ₫ y la c ng vi c cua h th ́ng th ng qua module 'garbage collection'. vưng b ̀n kh ng phai la vĩnh hăng, mưc ₫ co th ̉ la 1 session cua may ao (JVM) hay l u dai (th ng qua ₫ĩa cưng, CDROM). Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 24 12
- Tö̉ng kḯt M h nh hương ₫ ́i tương quan ni m th ́ giơi (hay chương tr nh) bao g ̀m cac ₫ ́i tương s ́ng chung va tương tac vơi nhau. Cac ₫ăc ₫i ̉m ch nh cua hương ₫ ́i tương : Bao ₫ong : m ̃i ₫ ́i tương bao g ̀m dư li u va tac vu. Cac tac vu thi ́t l p n n hanh vi cua ₫ ́i tương. Cac ₫ ́i tương ₫ươc ph n loai băng class. Cac ₫ ́i tương tương tac vơi nhau băng cach gơi th ng ₫i p. giưa cac class/₫ ́i tương co th ̉ t ̀n tai quan h bao g p, thưa k ́, t ̉ng quat hoa. T nh ₫a h nh : k ́t qua cua sư ki ̉m tra ki ̉u dưa vao m ́i quan h 'conformity'. T nh vưng b ̀n : ₫ ́i tương t ̀n tai khi con t nh ́t 1 tham khao ₫ ́n no. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐH Bach Khoa Tp.HCM Slide 25 Trương Đai hoc Bach Khoa Tp. Hö̀ Chñ Minh Khoa Cöng Nghï Thöng Tin Chương 2 THÑ DU VÏ NGÖN NGƯ OOP Visual C++ Java Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 26 13
- 2.1 Ngön ngư Visual C++ 1. Chỉ hö̃ trơ khai niïm class. 2. Cho phep Đa thưa kḯ. 3. Dung 'abstract class' ₫ï̉ ₫ịnh nghĩa interface. 4. Tềm vưc truy xuết cac thanh phền. 5. Đa hònh co chon loc nhơ 'virtual function' 6. Chỉ hö̃ trơ cac ₫ö́i tương tam. 7. Override method khi thưa kḯ. 8. Co thï̉ ₫ịnh nghĩa function overloaded. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 27 Chỉ hö̃ trơ khai niïm class 1. Dung class ₫ ̉ ₫ịnh nghĩa ki ̉u cho cac bi ́n, thu c t nh ⇒ ₫ ́i tương co th ̉ chưa v t ly ₫ ́i tương khac hay chưa tham khao ₫ ́n ₫ ́i tương khac. 2. Đa thưa k ́ trong ₫ịnh nghĩa class ⇒ 1 class co th ̉ chưa nhi ̀u class con trung nhau ⇒ dung "virtual base class" ₫ ̉ t ́i ưu hoa b nhơ ₫ ́i tương. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 28 14
- Class trưu tương (Abstract class) 3. H ̃ trơ khai ni m "abstract class" ₫ ̉ ₫ịnh nghĩa class chỉ chưa th ng tin interface nhưng kh ng cho phep dung class nay ₫ ̉ ₫ịnh nghĩa ki ̉u cho bi ́n hay thu c t nh. 1 abstract class la 1 class chưa t nh ́t 1 "pure virtual funtion". class Geometry { // abstract class public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ) = 0; // pure virtual function protected: int xPos, yPos; double xScale, yScale; COLORREF color; }; Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 29 Tềm vưc truy xuết thanh viïn 4. T ̀m vưc truy xu ́t th ng tin trong ₫ ́i tương : private : th ng tin bị che d ́u hoan toan. protected : chỉ che d ́u b n ngoai nhưng cho phep cac ₫ ́i tương con, chau, chăt... truy xu ́t. public : cho phep t ́t ca moi nơi truy xu ́t. Friend class : la class ma m ̃i function cua no ₫ ̀u co th ̉ truy xu ́t tư do m ̃i thanh ph ̀n cua class hi n tai. Friend function : la function co th ̉ truy xu ́t tư do m ̃i thanh ph ̀n cua class hi n tai. Co th ̉ han ch ́ t ̀m vưc cua thanh vi n cua class cha khi thưa k ́. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 30 15
- Hö̃ trơ tñnh ₫a hònh co chon loc 5. Định nghĩa 'virtual function' n ́u mu ́n ap dung t nh ₫a h nh trong vi c gơi th ng bao y u c ̀u function nay thưc thi. T ́t ca cac 'virtual function' ₫ươc quan ly trong 1 danh sach "virtual function table". ₫ịa chỉ function 1 ₫ịa chỉ function 2 ₫ịa chỉ function 3 ₫ịa chỉ function i ₫ịa chỉ function n Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 31 Cac ₫ö́i tương ₫ï̀u tam thơi 6. Cac ₫ ́i tương chỉ t ̀n tai tam thơi trong kh ng gian process. Tham khao ₫ ́n ₫ ́i tương thưc ch ́t la pointer cuc b . chương tr nh phai tư vi ́t code cho hoat ₫ ng save/restore ₫ ́i tương n ́u mu ́n lưu giư/dung lai ₫ ́i tương. VC++ h ̃ trơ hoat ₫ ng save/restore ₫ ́i tương nhơ kha năng 'Serialization'. 7. Co quy ̀n 'override' b ́t ky toan tư hay function nao cua class cha. 8. Cho phep ₫ịnh nghĩa cac ham 'overloaded' : cung t n nhưng 'signature' khac nhau. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 32 16
- Skeleton ₫ịnh nghĩa class class Geometry : Object { // == class Geometry : public Object { public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ); // virtual method BOOL IsDisplayed(void); .... protected: COLORREF color; .... private : int xPos, yPos; double xScale, yScale; ... }; class Point : Geometry {}; class Line : Geometry { .... }; class Polygon : Geometry {....}; class Rectangle : Geometry {....}; .... Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 33 Cếu truc 1 chương trònh Dialog based ₫ơn gian InitInstance() DoModal() CProgramDlg CProgramApp Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 34 17
- Cếu truc 1 chương trònh SDI ₫ơn gian InitInstance() CMainFrame CProgramView CProgramDoc CSingleDocTemplate CProgramApp Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 35 Cếu truc 1 chương trònh MDI ₫ơn gian InitInstance() CChildFrame CProgramView CProgramDoc CMultiDocTemplate CProgramApp Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 36 18
- 2.2 Ngön ngư Java 1. Hö̃ trơ 'interface' (1 dang cua type) va class. 2. Hö̃ trơ Đơn thưa kḯ. 3. Dung 'abstract class' ₫ï̉ ₫ịnh nghĩa interface. 4. Tềm vưc truy xuết cac thanh phền. 5. Hö̃ trơ package 6. Đa hònh ₫ềy ₫u. 7. Chỉ hö̃ trơ ₫ö́i tương tam trong session JVM 8. Override function khi thưa kḯ. 9. Co thï̉ ₫ịnh nghĩa function overloaded. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 37 Hö̃ trơ Class va Interface 1. Chu y ́u dung class ₫ ̉ ₫ịnh nghĩa ki ̉u cho cac bi ́n, thu c t nh. Co th ̉ dung interface ₫ ̉ ₫ịnh nghĩa ki ̉u cho cac bi ́n, thu c t nh. Đ ́i tương chỉ co th ̉ chưa tham khao ₫ ́n ₫ ́i tương khac. 2. Phai goi ham tao ₫ ́i tương 1 cach tương minh, nhưng kh ng ₫ươc xoa ₫ ́i tương. class C1 extends RootClass {...} C1 o1; // o1 chưa tham khao ₫ ́n ₫ ́i tương C1 o1 = New C1; 3. Interface chỉ ₫ươc dung trong trương hơp ₫ăc bi t va kh ng tương ₫ương vơi abstract type. 4. Đơn thưa k ́ trong ₫ịnh nghĩa class ⇒ m ́i quan h thưa k ́ giưa cac class kha ₫ơn gian. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 38 19
- Hö̃ trơ abstract class 5. H ̃ trơ khai ni m "abstract class" ₫ ̉ ₫ịnh nghĩa class chưa th ng tin interface va kh ng cho phep 'instanciate' ₫ ́i tương. Ban chỉ co th ̉ dung class 'abstract class' ₫ ̉ ₫ăc ta ki ̉u cho cac bi ́n hoăc ₫ịnh nghĩa cac class con. class abstract Geometry { // abstract class protected int xPos, yPos; protected double xScale, yScale; protected COLORREF color; ... public abstract Draw(Graphics g); // abstract function ... }; Abstract class co th ̉ chưa ₫ ̀y ₫u cac hi n thưc b n trong, nhưng thương chỉ co chưa cac 'abstract function'. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 39 Tềm vưc truy xuết cac thanh phền 6. T ̀m vưc truy xu ́t cac thanh ph ̀n trong ₫ ́i tương : private : thanh ph ̀n bị che d ́u hoan toan. protected : che d ́u b n ngoai nhưng cho phep cac ₫ ́i tương con, chau, chăt... truy xu ́t. public : cho phep t ́t ca moi nơi truy xu ́t. friendly : cho phep moi ph ̀n tư trong package truy xu ́t. Đ y la t ̀m vưc default va kh ng co tư khoa t ̀m vưc tương minh. Bö mön Cöng nghï phền mï̀m Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐH Bach Khoa Tp.HCM Slide 40 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phân tích thiết kế hệ thống mạng - ThS. Lê Xuân Thành
52 p | 722 | 95
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 5 - TS. Đào Nam Anh
87 p | 192 | 31
-
Bài giảng Phân tích thiết kế thuật toán: Chương 1 - Nguyễn Văn Linh
56 p | 229 | 22
-
Bài giảng Phân tích thiết kế thuật toán: Chương 3 - Nguyễn Văn Linh
87 p | 189 | 22
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 3 - TS. Đào Nam Anh
60 p | 129 | 21
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 1 - TS. Đào Nam Anh
78 p | 140 | 16
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 6 - TS. Đào Nam Anh
22 p | 128 | 16
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 2 - TS. Đào Nam Anh
28 p | 136 | 15
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 4 - TS. Đào Nam Anh
12 p | 155 | 15
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 7 - TS. Đào Nam Anh
39 p | 111 | 13
-
Bài giảng Phân tích thiết kế giải thuật: Chương 2 - Trịnh Huy Hoàng
98 p | 115 | 11
-
Bài giảng Phân tích thiết kế giải thuật: Chương 1 - Trịnh Huy Hoàng
72 p | 117 | 8
-
Bài giảng Phân tích thiết kế giải thuật - Chương 37: Giải thuật xấp xỉ
21 p | 111 | 7
-
Bài giảng Phân tích thiết kế giải thuật: Chương 4 - Trịnh Huy Hoàng
90 p | 106 | 7
-
Bài giảng Phân tích thiết kế hệ thống thông tin: Bài 9 - TS. Trần Mạnh Tuấn
46 p | 59 | 6
-
Bài giảng Phân tích thiết kế đảm bảo chất lượng phần mềm: Phần 1
115 p | 33 | 6
-
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 4 - Lê Thị Minh Nguyện
14 p | 80 | 5
-
Đề cương chi tiết bài giảng Phân tích thiết
29 p | 44 | 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