Bài giảng Lý thuyết hệ điều hành - Chương 3
Số trang: 41
Loại file: pdf
Dung lượng: 186.92 KB
Lượt xem: 21
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
LớP Ch-ơng này trình bày những vấn đề sau đây: Định nghĩa lớp Tạo lập đối t-ợng Truy nhập đến các thành phần của lớp Con trỏ đối t-ợng Con trỏ this Hàm bạn Dữ liệu thành phần tĩnh, hàm thành phần tĩnh Hàm tạo, hàm hủy Hàm tạo sao chép Lớp là khái niệm trung tâm của lập trình h-ớng đối t-ợng, nó là sự mở rộng của các khái niệm cấu trúc (struct) của C. Ngoài các thành phần dữ liệu, lớp còn chứa các thành phần hàm, còn gọi là ph-ơng thức (method) hoặc hàm thành viên...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết hệ điều hành - Chương 3CH−¬NG 3 LíPCh−¬ng nµy tr×nh bµy nh÷ng vÊn ®Ò sau ®©y: §Þnh nghÜa líp T¹o lËp ®èi t−îng Truy nhËp ®Õn c¸c thµnh phÇn cña líp Con trá ®èi t−îng Con trá this Hµm b¹n D÷ liÖu thµnh phÇn tÜnh, hµm thµnh phÇn tÜnh Hµm t¹o, hµm hñy Hµm t¹o sao chÐp Líp lμ kh¸i niÖm trung t©m cña lËp tr×nh h−íng ®èi t−îng, nã lμ sù më réngcña c¸c kh¸i niÖm cÊu tróc (struct) cña C. Ngoμi c¸c thμnh phÇn d÷ liÖu, líp cßnchøa c¸c thμnh phÇn hμm, cßn gäi lμ ph−¬ng thøc (method) hoÆc hμm thμnh viªn(member function). Líp cã thÓ xem nh− mét kiÓu d÷ liÖu c¸c biÕn, m¶ng ®èit−îng. Tõ mét líp ®· ®Þnh nghÜa, cã thÓ t¹o ra nhiÒu ®èi t−îng kh¸c nhau, mçi®èi t−îng cã vïng nhí riªng. Ch−¬ng nμy sÏ tr×nh bμy c¸ch ®Þnh nghÜa líp, c¸ch x©y dùng ph−¬ng thøc,gi¶i thÝch vÒ ph¹m vi truy nhËp, sö dông c¸c thμnh phÇn cña líp, c¸ch khai b¸obiÕn, m¶ng cÊu tróc, lêi gäi tíi c¸c ph−¬ng thøc .3.1. §Þnh nghÜa lípCó ph¸p: Líp ®−îc ®Þnh nghÜa theo mÉu : class tªn_líp { private: [Khai b¸o c¸c thuéc tÝnh] [§Þnh nghÜa c¸c hμm thμnh phÇn (ph−¬ng thøc)] public : [Khai b¸o c¸c thuéc tÝnh] [§Þnh nghÜa c¸c hμm thμnh phÇn (ph−¬ng thøc)] }; Thuéc tÝnh cña líp ®−îc gäi lμ d÷ liÖu thμnh phÇn vμ hμm ®−îc gäi lμph−¬ng thøc hoÆc hμm thμnh viªn. Thuéc tÝnh vμ hμm ®−îc gäi chung lμ c¸cthμnh phÇn cña líp. C¸c thμnh phÇn cña líp ®−îc tæ chøc thμnh hai vïng: vïngLập trình HĐT 37 http://www.ebook.edu.vnsë h÷u riªng (private) vμ vïng dïng chung (public) ®Ó quy ®Þnh ph¹m vi sö dôngcña c¸c thμnh phÇn. NÕu kh«ng quy ®Þnh cô thÓ (kh«ng dïng c¸c tõ khãa privatevμ public) th× C++ hiÓu ®ã lμ private. C¸c thμnh phÇn private chØ ®−îc sö dôngbªn trong líp (trong th©n cña c¸c hμm thμnh phÇn). C¸c thμnh phÇn public ®−îcphÐp sö dông ë c¶ bªn trong vμ bªn ngoμi líp. C¸c hμm kh«ng ph¶i lμ hμm thμnhphÇn cña líp th× kh«ng ®−îc phÐp sö dông c¸c thμnh phÇn nμy.Khai b¸o c¸c thuéc tÝnh cña líp: ®−îc thùc hiÖn y nh− viÖc khai b¸o biÕn.Thuéc tÝnh cña líp kh«ng thÓ cã kiÓu chÝnh cña líp ®ã, nh−ng cã thÓ lμ kiÓu contrá cña líp nμy,VÝ dô: class A { A x; //Kh«ng cho phÐp, v× x cã kiÓu líp A A *p ; // Cho phÐp, v× p lμ con trá kiÓu líp A }; §Þnh nghÜa c¸c hµm thµnh phÇn: C¸c hμm thμnh phÇn cã thÓ ®−îc x©ydùng bªn ngoμi hoÆc bªn trong ®Þnh nghÜa líp. Th«ng th−êng, c¸c hμm thμnhphÇn ®¬n gi¶n, cã Ýt dßng lÖnh sÏ ®−îc viÕt bªn trong ®Þnh nghÜa líp, cßn c¸chμm thμnh phÇn dμi th× viÕt bªn ngoμi ®Þnh nghÜa líp. C¸c hμm thμnh phÇn viÕtbªn trong ®Þnh nghÜa líp ®−îc viÕt nh− hμm th«ng th−êng. Khi ®Þnh nghÜa hμmthμnh phÇn ë bªn ngoμi líp, ta dïng có ph¸p sau ®©y: KiÓu_tr¶_vÒ_cña_hμm Tªn_líp::Tªn_hμm(khai b¸o c¸c tham sè) { [néi dung hμm] } To¸n tö :: ®−îc gäi lμ to¸n tö ph©n gi¶i miÒn x¸c ®Þnh, ®−îc dïng ®Ó chØ ralíp mμ hμm ®ã thuéc vμo. Trong th©n hμm thμnh phÇn, cã thÓ sö dông c¸c thuéc tÝnh cña líp, c¸c hμmthμnh phÇn kh¸c vμ c¸c hμm tù do trong ch−¬ng tr×nh.Chó ý : • C¸c thμnh phÇn d÷ liÖu khai b¸o lμ private nh»m b¶o ®¶m nguyªn lý che dÊu th«ng tin, b¶o vÖ an toμn d÷ liÖu cña líp, kh«ng cho phÐp c¸c hμm bªn ngoμi x©m nhËp vμo d÷ liÖu cña líp . • C¸c hμm thμnh phÇn khai b¸o lμ public cã thÓ ®−îc gäi tíi tõ c¸c hμm thμnh phÇn public kh¸c trong ch−¬ng tr×nh .Lập trình HĐT 38 http://www.ebook.edu.vn3.2. T¹o lËp ®èi t−îng Sau khi ®Þnh nghÜa líp, ta cã thÓ khai b¸o c¸c biÕn thuéc kiÓu líp. C¸c biÕnnμy ®−îc gäi lμ c¸c ®èi t−îng. Có ph¸p khai b¸o biÕn ®èi t−îng nh− sau: Tªn_líp Danh_s¸ch_biÕn ;§èi t−îng còng cã thÓ khai b¸o khi ®Þnh nghÜa líp theo có ph¸p sau: class tªn_líp { ... } ; Mçi ®èi t−îng sau khi khai b¸o sÏ ®−îc cÊp ph¸t mét vïng nhí riªng ®Óchøa c¸c thuéc tÝnh cña chóng. Kh«ng cã vïng nhí riªng ®Ó chøa c¸c hμm thμnhphÇn cho mçi ®èi t−îng. C¸c hμm thμnh phÇn sÏ ®−îc sö dông chung cho tÊt c¶c¸c ®èi t−îng cïng líp.3.3. Truy nhËp tíi c¸c thµnh phÇn cña líp • §Ó truy nhËp ®Õn d÷ liÖu thμnh phÇn cña líp, ta dïng có ph¸p: Tªn_®èi_t−îng. Tªn_thuéc_tÝnhCÇn chó ý r»ng d÷ liÖu thμnh phÇn riªng chØ cã thÓ ®−îc truy nhËp bëi nh÷nghμm thμnh phÇn cña cïng mét líp, ®èi t−îng cña líp còng kh«ng thÓ truy nhËp. • §Ó sö dông c¸c hμm thμnh phÇn cña líp, ta dïng có ph¸p: Tªn_®èi_t−îng. Tªn_hμm (C¸c_khai_b¸o_tham_sè_thùc_sù)VÝ dô 3.1#include #include class DIEM { private : int x,y ; public : void nhapsl( ) { cout >x>>y ; }Lập trình HĐT 39 http://www.ebook.edu.vn void hienthi( ) { cout ge ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết hệ điều hành - Chương 3CH−¬NG 3 LíPCh−¬ng nµy tr×nh bµy nh÷ng vÊn ®Ò sau ®©y: §Þnh nghÜa líp T¹o lËp ®èi t−îng Truy nhËp ®Õn c¸c thµnh phÇn cña líp Con trá ®èi t−îng Con trá this Hµm b¹n D÷ liÖu thµnh phÇn tÜnh, hµm thµnh phÇn tÜnh Hµm t¹o, hµm hñy Hµm t¹o sao chÐp Líp lμ kh¸i niÖm trung t©m cña lËp tr×nh h−íng ®èi t−îng, nã lμ sù më réngcña c¸c kh¸i niÖm cÊu tróc (struct) cña C. Ngoμi c¸c thμnh phÇn d÷ liÖu, líp cßnchøa c¸c thμnh phÇn hμm, cßn gäi lμ ph−¬ng thøc (method) hoÆc hμm thμnh viªn(member function). Líp cã thÓ xem nh− mét kiÓu d÷ liÖu c¸c biÕn, m¶ng ®èit−îng. Tõ mét líp ®· ®Þnh nghÜa, cã thÓ t¹o ra nhiÒu ®èi t−îng kh¸c nhau, mçi®èi t−îng cã vïng nhí riªng. Ch−¬ng nμy sÏ tr×nh bμy c¸ch ®Þnh nghÜa líp, c¸ch x©y dùng ph−¬ng thøc,gi¶i thÝch vÒ ph¹m vi truy nhËp, sö dông c¸c thμnh phÇn cña líp, c¸ch khai b¸obiÕn, m¶ng cÊu tróc, lêi gäi tíi c¸c ph−¬ng thøc .3.1. §Þnh nghÜa lípCó ph¸p: Líp ®−îc ®Þnh nghÜa theo mÉu : class tªn_líp { private: [Khai b¸o c¸c thuéc tÝnh] [§Þnh nghÜa c¸c hμm thμnh phÇn (ph−¬ng thøc)] public : [Khai b¸o c¸c thuéc tÝnh] [§Þnh nghÜa c¸c hμm thμnh phÇn (ph−¬ng thøc)] }; Thuéc tÝnh cña líp ®−îc gäi lμ d÷ liÖu thμnh phÇn vμ hμm ®−îc gäi lμph−¬ng thøc hoÆc hμm thμnh viªn. Thuéc tÝnh vμ hμm ®−îc gäi chung lμ c¸cthμnh phÇn cña líp. C¸c thμnh phÇn cña líp ®−îc tæ chøc thμnh hai vïng: vïngLập trình HĐT 37 http://www.ebook.edu.vnsë h÷u riªng (private) vμ vïng dïng chung (public) ®Ó quy ®Þnh ph¹m vi sö dôngcña c¸c thμnh phÇn. NÕu kh«ng quy ®Þnh cô thÓ (kh«ng dïng c¸c tõ khãa privatevμ public) th× C++ hiÓu ®ã lμ private. C¸c thμnh phÇn private chØ ®−îc sö dôngbªn trong líp (trong th©n cña c¸c hμm thμnh phÇn). C¸c thμnh phÇn public ®−îcphÐp sö dông ë c¶ bªn trong vμ bªn ngoμi líp. C¸c hμm kh«ng ph¶i lμ hμm thμnhphÇn cña líp th× kh«ng ®−îc phÐp sö dông c¸c thμnh phÇn nμy.Khai b¸o c¸c thuéc tÝnh cña líp: ®−îc thùc hiÖn y nh− viÖc khai b¸o biÕn.Thuéc tÝnh cña líp kh«ng thÓ cã kiÓu chÝnh cña líp ®ã, nh−ng cã thÓ lμ kiÓu contrá cña líp nμy,VÝ dô: class A { A x; //Kh«ng cho phÐp, v× x cã kiÓu líp A A *p ; // Cho phÐp, v× p lμ con trá kiÓu líp A }; §Þnh nghÜa c¸c hµm thµnh phÇn: C¸c hμm thμnh phÇn cã thÓ ®−îc x©ydùng bªn ngoμi hoÆc bªn trong ®Þnh nghÜa líp. Th«ng th−êng, c¸c hμm thμnhphÇn ®¬n gi¶n, cã Ýt dßng lÖnh sÏ ®−îc viÕt bªn trong ®Þnh nghÜa líp, cßn c¸chμm thμnh phÇn dμi th× viÕt bªn ngoμi ®Þnh nghÜa líp. C¸c hμm thμnh phÇn viÕtbªn trong ®Þnh nghÜa líp ®−îc viÕt nh− hμm th«ng th−êng. Khi ®Þnh nghÜa hμmthμnh phÇn ë bªn ngoμi líp, ta dïng có ph¸p sau ®©y: KiÓu_tr¶_vÒ_cña_hμm Tªn_líp::Tªn_hμm(khai b¸o c¸c tham sè) { [néi dung hμm] } To¸n tö :: ®−îc gäi lμ to¸n tö ph©n gi¶i miÒn x¸c ®Þnh, ®−îc dïng ®Ó chØ ralíp mμ hμm ®ã thuéc vμo. Trong th©n hμm thμnh phÇn, cã thÓ sö dông c¸c thuéc tÝnh cña líp, c¸c hμmthμnh phÇn kh¸c vμ c¸c hμm tù do trong ch−¬ng tr×nh.Chó ý : • C¸c thμnh phÇn d÷ liÖu khai b¸o lμ private nh»m b¶o ®¶m nguyªn lý che dÊu th«ng tin, b¶o vÖ an toμn d÷ liÖu cña líp, kh«ng cho phÐp c¸c hμm bªn ngoμi x©m nhËp vμo d÷ liÖu cña líp . • C¸c hμm thμnh phÇn khai b¸o lμ public cã thÓ ®−îc gäi tíi tõ c¸c hμm thμnh phÇn public kh¸c trong ch−¬ng tr×nh .Lập trình HĐT 38 http://www.ebook.edu.vn3.2. T¹o lËp ®èi t−îng Sau khi ®Þnh nghÜa líp, ta cã thÓ khai b¸o c¸c biÕn thuéc kiÓu líp. C¸c biÕnnμy ®−îc gäi lμ c¸c ®èi t−îng. Có ph¸p khai b¸o biÕn ®èi t−îng nh− sau: Tªn_líp Danh_s¸ch_biÕn ;§èi t−îng còng cã thÓ khai b¸o khi ®Þnh nghÜa líp theo có ph¸p sau: class tªn_líp { ... } ; Mçi ®èi t−îng sau khi khai b¸o sÏ ®−îc cÊp ph¸t mét vïng nhí riªng ®Óchøa c¸c thuéc tÝnh cña chóng. Kh«ng cã vïng nhí riªng ®Ó chøa c¸c hμm thμnhphÇn cho mçi ®èi t−îng. C¸c hμm thμnh phÇn sÏ ®−îc sö dông chung cho tÊt c¶c¸c ®èi t−îng cïng líp.3.3. Truy nhËp tíi c¸c thµnh phÇn cña líp • §Ó truy nhËp ®Õn d÷ liÖu thμnh phÇn cña líp, ta dïng có ph¸p: Tªn_®èi_t−îng. Tªn_thuéc_tÝnhCÇn chó ý r»ng d÷ liÖu thμnh phÇn riªng chØ cã thÓ ®−îc truy nhËp bëi nh÷nghμm thμnh phÇn cña cïng mét líp, ®èi t−îng cña líp còng kh«ng thÓ truy nhËp. • §Ó sö dông c¸c hμm thμnh phÇn cña líp, ta dïng có ph¸p: Tªn_®èi_t−îng. Tªn_hμm (C¸c_khai_b¸o_tham_sè_thùc_sù)VÝ dô 3.1#include #include class DIEM { private : int x,y ; public : void nhapsl( ) { cout >x>>y ; }Lập trình HĐT 39 http://www.ebook.edu.vn void hienthi( ) { cout ge ...
Tìm kiếm theo từ khóa liên quan:
lập trình hướng đối tượng ngôn ngữ c định nghĩa lớp giáo trình máy tính lý thuyết máy tínhTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 277 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 134 0 0 -
Giáo trình Tin học đại cương: Phần 2 - Trần Đình Khang
118 trang 121 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 113 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 -
Giáo trình Máy tính và mạng máy tính: Phần 2
67 trang 92 0 0 -
101 thuật toán chương trình C: Phần 2
130 trang 91 0 0