Danh mục

Giáo trình C++ Đại Học Bách Khoa (phần 5)

Số trang: 85      Loại file: pdf      Dung lượng: 3.21 MB      Lượt xem: 15      Lượt tải: 0    
Thu Hiền

Phí tải xuống: 3,000 VND Tải xuống file đầy đủ (85 trang) 0
Xem trước 9 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu giáo trình c++ đại học bách khoa (phần 5), công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Giáo trình C++ Đại Học Bách Khoa (phần 5) ¬ Ch¬ng Ch¬ng 3 ®èi tîng vµ líp ®èi îng (Object & Class) Môc ®Ých ch¬ng nµy: 1. Kh¸i niÖm vÒ ®ãng gãi d÷ liÖu. 2. Khai b¸o vµ sö dông mét líp. 3. Khai b¸o vµ sö dông ®èi tîng, con trá ®èi tîng, tham chiÕu ®èi tîng. 4. Hµm thiÕt lËp vµ hµm huû bá. 5. Khai b¸o vµ sö dông hµm thiÕt lËp sao chÐp. 6. Vai trß cña hµm thiÕt lËp ngÇm ®Þnh.1. §èi tîng §èi îng §èi tîng lµ mét kh¸i niÖm trong lËp tr×nh híng ®èi tîng biÓu thÞ sùliªn kÕt gi÷a d÷ liÖu vµ c¸c thñ tôc (gäi lµ c¸c ph¬ng thøc) thao t¸c trªn d÷liÖu ®ã. Ta cã c«ng thøc sau: §èi tîng = D÷ liÖu+Ph¬ng §èi îng liÖu+Ph¬ ¬ng thøc thø ë ®©y chóng ta hiÓu r»ng ®èi tîng chÝnh lµ c«ng cô hç trî cho sù ®ãnggãi. Sù ®ãng gãi lµ c¬ chÕ liªn kÕt c¸c lÖnh thao t¸c vµ d÷ liÖu cã liªn quan,gióp cho c¶ hai ®îc an toµn tr¸nh ®îc sù can thiÖp tõ bªn ngoµi vµ viÖc södông sai. Nh×n chung ®Þnh nghÜa mét ®èi tîng phøc t¹p h¬n so víi ®ÞnhnghÜa c¸c biÕn cÊu tróc th«ng thêng, bëi lÏ ngoµi viÖc m« t¶ c¸c thµnh phÇnd÷ liÖu, ta cßn ph¶i x¸c ®Þnh ®îc c¸c thao t¸c t¸c ®éng lªn ®èi tîng ®ã.H×nh 2.1 m« t¶ c¸c ®èi tîng ®iÓm trªn mÆt ph¼ng: Mçi ®èi tîng ®îc x¸c ®Þnh bëi hai thµnh phÇn to¹ ®é ®îc biÓu diÔnbëi hai biÕn nguyªn. C¸c thao t¸c t¸c ®éng lªn ®iÓm bao gåm viÖc x¸c ®Þnhto¹ ®é mét ®iÓm trªn mÆt ph¼ng to¹ ®é (thÓ hiÖn b»ng viÖc g¸n gi¸ trÞ chohai thµnh phÇn to¹ ®é), thay ®æi to¹ ®é vµ hiÓn thÞ kÕt qu¶ lªn trªn mÆt ph¼ngto¹ ®é (t¬ng tù nh viÖc chÊm ®iÓm trªn mÆt ph¼ng ®ã). Lîi Ých cña viÖc ®ãng gãi lµ khi nh×n tõ bªn ngoµi, mét ®èi tîng chØ®îc biÕt tíi bëi c¸c m« t¶ vÒ c¸c ph¬ng thøc cña nã, c¸ch thøc cµi ®Æt c¸cNg«n ng÷ C++d÷ liÖu kh«ng quan träng ®èi víi ngêi sö dông. Víi mét ®èi tîng ®iÓm,ngêi ta chØ quan t©m ®Õn viÖc cã thÓ thùc hiÖn ®îc thao t¸c g× trªn nã mµkh«ng cÇn biÕt c¸c thao t¸c ®ã ®îc thùc hiÖn nh thÕ nµo, còng nh ®iÒu g×x¶y ra bªn trong b¶n th©n ®èi tîng ®ã. Ta thêng nãi ®ã lµ “sù trõu tîngho¸ d÷ liÖu” (khi c¸c chi tiÕt cµi ®Æt cô thÓ ®îc giÊu ®i). M« t¶ ®èi tîng ®iÓm { //d÷ liÖu int x,y; //ph¬ng thøc void init(int ox,int oy); void move(int dx,int dy); void display(); }; H×nh 3.1 M« t¶ c¸c ®èi tîng ®iÓm §ãng gãi cã nhiÒu lîi Ých gãp phÇn n©ng cao chÊt lîng cña ch¬ngtr×nh. Nã lµm cho c«ng viÖc b¶o tr× ch¬ng tr×nh thuËn l¬i h¬n rÊt nhiÒu: métsù thay ®æi cÊu tróc cña mét ®èi tîng chØ ¶nh hëng tíi b¶n th©n ®èi tîng;ngêi sö dông ®èi tîng kh«ng cÇn biÕt ®Õn thay ®æi nµy (víi lËp tr×nh cÊutróc th× ngêi lËp tr×nh ph¶i tù qu¶n lý sù thay ®æi ®ã). Ch¼ng h¹n cã thÓbiÓu diÔn to¹ ®é mét ®iÓm díi d¹ng sè thùc, khi ®ã chØ cã ngêi thiÕt kÕ®èi tîng ph¶i quan t©m ®Ó söa l¹i ®Þnh nghÜa cña ®èi tîng trong khi ®ãngêi sö dông kh«ng cÇn hay biÕt vÒ ®iÒu ®ã, miÔn lµ nh÷ng thay ®æi ®ãkh«ng t¸c ®éng ®Õn viÖc sö dông ®èi tîng ®iÓm. T¬ng tù nh vËy, ta cã thÓ bæ sung thªm thuéc tÝnh mµu vµ mét sè thaot¸c lªn mét ®èi tîng ®iÓm, ®Ó cã ®îc mét ®èi tîng ®iÓm mµu. Râ rµng lµ®ãng gãi cho phÐp ®¬n gi¶n ho¸ viÖc sö dông mét ®èi tîng. Trong lËp tr×nh híng ®èi tîng, ®ãng gãi cho phÐp d÷ liÖu cña ®èitîng ®îc che lÊp khi nh×n tõ bªn ngoµi, nghÜa lµ nÕu ngêi dïng muèn t¸c®éng lªn d÷ liÖu cña ®èi tîng th× ph¶i göi ®Õn ®èi tîng c¸c th«ng®iÖp(message). ë ®©y c¸c ph¬ng thøc ®ãng vai trß lµ giao diÖn b¾t buécgi÷a c¸c ®èi tîng vµ ngêi sö dông. Ta cã nhËn xÐt: “Lêi gäi ®Õn métph¬ng thøc lµ truyÒn mét th«ng b¸o ®Õn cho ®èi tîng”. C¸c th«ng ®iÖp göi tíi ®èi tîng nµo sÏ g¾n chÆt víi ®èi tîng ®ã vµ chØ®èi tîng nµo nhËn ®îc th«ng ®iÖp míi ph¶i thùc hiÖn theo th«ng ®iÖp ®ã;ch¼ng h¹n c¸c ®èi tîng ®iÓm ®éc lËp víi nhau, v× vËy th«ng ®iÖp thay ®æito¹ ®é ®èi tîng ®iÓm p chØ lµm ¶nh hëng ®Õn c¸c thµnh phÇn to¹ ®é trongp chø kh«ng thÓ thay ®æi ®îc néi dung cña mét ®èi tîng ®iÓm q kh¸c. -41-Ng«n ng÷ C++ So víi lËp tr×nh híng ®èi tîng thuÇn tuý, c¸c cµi ®Æt cô thÓ cña ®èitîng trong C++ linh ®éng h¬n mét chót, b»ng c¸ch cho phÐp chØ che dÊumét bé phËn d÷ liÖu cña ®èi tîng vµ më réng h¬n kh¶ n¨ng truy nhËp ®Õnc¸c thµnh phÇn riªng cña ®èi tîng. Kh¸i niÖm líp chÝnh lµ c¬ së cho c¸clinh ®éng nµy. Líp lµ mét m« t¶ trõu tîng cña nhãm c¸c ®è ...

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