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
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Õ ...
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ìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng Lập trình hướng đối tượng Ghi dữ liệu lên tệp Phương thức định dạng Khuôn hình lớp Khuôn hình hàmGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
101 trang 199 1 0
-
14 trang 133 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 78 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 68 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 51 0 0