Danh mục

Bài giảng Lập trình hướng đối tượng: Phần 2 - ĐH Sư phạm kỹ thuật Nam Định

Số trang: 166      Loại file: pdf      Dung lượng: 711.89 KB      Lượt xem: 10      Lượt tải: 0    
Thư viện của tui

Xem trước 10 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tiếp nội dung phần 1, Bài giảng Lập trình hướng đối tượng: Phần 2 cung cấp cho người học những kiến thức như: Dẫn xuất và thừa kế; Khuôn hình; Các dòng xuất nhập;...Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Phần 2 - ĐH Sư phạm kỹ thuật Nam ĐịnhLËp tr×nh h-íng ®èi t-îng Ch-¬ng 3: DÉn xuÊt vµ thõa kÕ Néi dung cña ch-¬ng tËp trung tr×nh bµy c¸c vÊn ®Ò sau:  Kh¸i niÖm líp c¬ së, líp dÉn xuÊt.  C¸ch x©y dùng líp dÉn xuÊt.  C¸c kiÓu thõa kÕ.  Ph¹m vi truy xuÊt ®Õn c¸c thµnh phÇn cña líp c¬ së.  Hµm t¹o, hµm huû, to¸n tö g¸n víi tÝnh thõa kÕ  Thõa kÕ nhiÒu møc vµ sù trïng tªn.  Líp c¬ së ¶o.  Ph-¬ng thøc tÜnh, ph-¬ng thøc ¶o.3.1. Sù dÉn xuÊt vµ tÝnh thõa kÕ 3.1.1. Líp c¬ së vµ líp dÉn xuÊt LËp tr×nh h-íng ®èi t-îng cã hai ®Æc tr-ng c¬ b¶n:  §ãng gãi d÷ liÖu, ®-îc thÓ hiÖn b»ng c¸ch dïng kh¸i niÖm líp ®Ó biÓu diÔn ®èi t-îng víi c¸c thuéc tÝnh private, chØ cho phÐp bªn ngoµi truy nhËp vµo th«ng qua c¸c ph-¬ng thøc.  Dïng l¹i m·, thÓ hiÖn b»ng viÖc thõa kÕ gi÷a c¸c líp. ViÖc thõa kÕ cho phÐp c¸c líp thõa kÕ (gäi lµ líp dÉn xuÊt) sö dông l¹i c¸c ph-¬ng thøc ®· ®-îc ®Þnh nghÜa trong c¸c líp gèc (gäi lµ líp c¬ së). Mét líp cã thÓ ®-îc dÉn xuÊt tõ nhiÒu líp c¬ së, mét líp c¬ së còng cã thÓ lµ líp c¬ së cña nhiÒu líp dÉn xuÊt. 3.1.2. C¸ch x©y dùng líp dÉn xuÊt Có ph¸p khai b¸o mét líp thõa kÕ tõ mét líp kh¸c nh- sau: class : { …// Khai b¸o c¸c thµnh phÇn cña líp };Trong ®ã: Trang - 88 -LËp tr×nh h-íng ®èi t-îng Tªn líp dÉn xuÊt: lµ tªn líp ®-îc cho thõa kÕ tõ líp kh¸c. Tªn líp nµy tu©nthñ theo quy t¾c ®Æt tªn biÕn trong C++. Tªn líp cë së: lµ tªn líp ®· ®-îc ®Þnh nghÜa tr-íc ®ã ®Ó cho líp kh¸c thõa kÕ.Tªn líp nµy còng tu©n thñ theo quy t¾c ®Æt tªn biÕn cña C++.Tõ khãa dÉn xuÊt: lµ tõ khãa quy ®Þnh tÝnh chÊt cña sù thõa kÕ. Cã ba tõ khãadÉn xuÊt lµ private, protected vµ public.VÝ dô 3.1: class Bus: public Car { …// Khai b¸o c¸c thµnh phÇn };lµ khai b¸o mét líp Bus (xe buýt) thõa kÕ tõ líp Car (xe « t«) víi tÝnh chÊt thõakÕ lµ public. 3.1.3. C¸c kiÓu thõa kÕ Sù thõa kÕ cho phÐp trong líp dÉn xuÊt cã thÓ sö dông l¹i mét sè m· nguåncña c¸c ph-¬ng thøc vµ thuéc tÝnh ®· ®-îc ®Þnh nghÜa trong líp c¬ së. NghÜa lµlíp dÉn xuÊt cã thÓ truy nhËp trùc tiÕp ®Õn mét sè thµnh phÇn cña líp c¬ së. Tuynhiªn, ph¹m vi truy nhËp tõ líp dÉn xuÊt ®Õn líp c¬ së kh«ng ph¶i bao giê cònggièng nhau: chóng ®-îc quy ®Þnh bëi c¸c tõ khãa dÉn xuÊt private, protected vµpublic.Thõa kÕ privateTheo kiÓu thõa kÕ nµy: C¸c thµnh phÇn private cña líp c¬ së th× kh«ng thÓ truy nhËp ®-îc tõ líp dÉnxuÊt. C¸c thµnh phÇn protected cña líp c¬ së trë thµnh c¸c thµnh phÇn private cñalíp dÉn xuÊt. C¸c thµnh phÇn public cña líp c¬ së còng trë thµnh c¸c thµnh phÇn private cñalíp dÉn xuÊt. Ph¹m vi truy nhËp tõ bªn ngoµi vµo líp dÉn xuÊt ®-îc tu©n thñ nh- quy t¾cph¹m vi líp th«ng th-êng.Thõa kÕ protectedTheo kiÓu thõa kÕ nµy: Trang - 89 -LËp tr×nh h-íng ®èi t-îng C¸c thµnh phÇn private cña líp c¬ së th× kh«ng thÓ truy nhËp ®-îc tõ líp dÉnxuÊt. C¸c thµnh phÇn protected cña líp c¬ së trë thµnh c¸c thµnh phÇn protected cñalíp dÉn xuÊt. C¸c thµnh phÇn public cña líp c¬ së còng trë thµnh c¸c thµnh phÇn protectedcña líp dÉn xuÊt. Ph¹m vi truy nhËp tõ bªn ngoµi vµo líp dÉn xuÊt ®-îc tu©n thñ nh- quy t¾cph¹m vi líp th«ng th-êng.Thõa kÕ publicTheo kiÓu thõa kÕ nµy: C¸c thµnh phÇn private cña líp c¬ së th× kh«ng thÓ truy nhËp ®-îc tõ líp dÉnxuÊt. C¸c thµnh phÇn protected cña líp c¬ së trë thµnh c¸c thµnh phÇn protected cñalíp dÉn xuÊt. C¸c thµnh phÇn public cña líp c¬ së vÉn lµ c¸c thµnh phÇn public cña líp dÉnxuÊt. Ph¹m vi truy nhËp tõ bªn ngoµi vµo líp dÉn xuÊt ®-îc tu©n thñ nh- quy t¾cph¹m vi líp th«ng th-êng. 3.1.4. Thõa kÕ c¸c thµnh phÇn d÷ liÖu C¸c thuéc tÝnh cña líp c¬ së ®-îc thõa kÕ trong líp dÉn xuÊt. Nh- vËy, tËpthuéc tÝnh trong líp dÉn xuÊt sÏ bao gåm: c¸c thuéc tÝnh míi khai b¸o trong lípdÉn xuÊt vµ c¸c thuéc tÝnh mµ líp dÉn xuÊt ®-îc thõa kÕ tõ c¸c líp c¬ së cã liªnquan. Tuy vËy, trong c¸c ph-¬ng thøc cña líp dÉn xuÊt kh«ng ®-îc phÐp truynhËp vµo c¸c thuéc tÝnh private cña líp c¬ së. Tªn cña thuéc tÝnh trong líp dÉnxuÊt vµ trong líp c¬ së cã thÓ ®Æt trïng nhau.VÝ dô 3.2: class Sinhvien {private: char *MaSV; char *TenSV; char *Diachi; char *Gioitinh; Trang - 90 -LËp tr×nh h-íng ®èi t-îng float DiemToanCC; float DiemVatly; float DiemAnhvan;public: void nhap(); void hienthi(); };class SinhvienCNTT:Sinhvien {private: float DiemLTC; float DiemCSDL;public: void nhap(); void hienthi(); int Xet_hocbong(); }; Khi ®ã líp SinhvienCNTT ngoµi c¸c thuéc tÝnh DiemLTC, DiemCSDL cßn cãc¸c thuéc tÝnh: MaSV, TenSV, Diachi, Gioitinh, DiemToanCC, DiemVatly,DiemAnhvan ®-îc thõa kÕ tõ líp Sinhvien. 3.1.5. Thõa kÕ ph-¬ng thøc Trõ: Hµm t¹o, hµm huû vµ to¸n tö g¸n, c¸c ph-¬ng thøc (public) kh¸c cña lípc¬ së ®-îc thõa kÕ ...

Tài liệu được xem nhiều: