Ngày tải lên :
05/07/2014, 19:20
... Ngônng C+ +
-42-
Sovớilậptrìnhhớngđốitợngthuầntuý ,c ccàiđặtcụth c ađối
tợngtrongC++linhđộnghơnmộtchút,bằngcáchchophépchỉchedấu
mộtbộphậndữliệucủađốitợngvàmởrộnghơnkhảnăngtruynhậpđến
c cthànhphầnriêngcủađốitợng.Kháiniệmlớpchínhl c sởchoc c
linhđộngnày.
Lớplàmộtmôtảtrừutợngcủanhómc c ốitợngc c ngbảnchất.
Trongmộtlớpngờitađaracácmôtảvềtínhchấtcủacácthànhphầndữ
liệu ,c chthứcthaotáctrêncácthànhphầnnày(hànhvicủac c ốitợng),
ngợclạimỗimộtđốitợnglàmộtthểhiệncụthểchonhữngmôtảtrừu
tợngđó.Trongcácngônngữlậptrình,lớpđóngvaitròmộtkiểudữliệu
đợcngờidùngđịnhnghĩavàviệctạoramộtđốitợngđợcvínhkhai
báomộtbiếncókiểulớp.
2.
2.
2.
2.
L
L
L
L
ớ
ớ
ớ
ớ
p
p
p
p
2.1
2.1
2.1
2.1
Khai
Khai
Khai
Khai
b
b
b
b
á
á
á
á
o
o
o
o
l
l
l
l
ớ
ớ
ớ
ớ
p
p
p
p
Từquanđiểmcủalậptrìnhcấutr c, lớplàmộtkiểudữliệutựđịnh
nghĩa.Tronglậptrìnhhớngđốitợng,chơngtrìnhnguồnđợcphânbố
trongkhaibáovàđịnhnghi c acáclớp.
Sauđâylàmộtvídụđiểnhìnhv c phápkhaibáolớp.Kinhnghiệm
chothấymọikiểukhaibáokh c ềucóthểchuẩnhoáđểđavềdạngnày.
C cchitiếtliênquanđếnkhaibáolớpsẽlầnlợtđ c c pđếntrong
c cphầnsau.Đểdễhìnhdungxétmộtvídụvềkhaibáolớpđiểmtrongmặt
phẳng.Trongvídụnàytacóđ c pđếnmộtvàikhíacạnhliênquanđến
khaibáolớp,đốitợngvàsửdụngchúng.
class
class
class
class
<tênlớp>{
private:
private:
private:
private:
<khaibáocácthànhphầnriêngtrongtừngđốitợng>
public:
public:
public:
public:
<khaibáocácthànhphầncôngcộngcủatừngđối
tợng>
};
<địnhnghi c acáchàmthànhphầnchađ c ịnh
nghĩabêntrongkhaibáolớp>
... Ngônng C+ +
-41-
dữliệukhôngquantrọngđốivớingờisửdụng.Vớimộtđốitợngđiểm,
ngờitachỉquantâmđếnviệccóthểthựchiệnđợcthaotácgìtrênnómà
khôngcầnbiếtcácthaot c óđợcthựchiệnnhthếnào ,c ngnhđiềugì
xảyrabêntrongbảnthânđốitợngđó.Tathờngnóiđólàsựtrừutợng
hoádữliệu(khicácchitiếtcàiđặtcụthểđợcgiấuđi).
Đónggóicónhiềulợiíchgópphầnnângcaochấtlợngcủachơng
trình. Nólàmchocôngviệcbảotrìchơngtrìnhthuậnlơihơnrấtnhiều:một
sựthayđổicấutrúccủamộtđốitợngchỉảnhhởngtớibảnthânđốitợng;
ngờisửdụngđốitợngkhôngcầnbiếtđếnthayđổinày(vớilậptrìnhcấu
trúcthìngờilậptrìnhphảitựquảnlýsựthayđổiđó).Chẳnghạncóthể
biểudiễntoạđộmộtđiểmdớidạngsốth c, khiđóch c ngờithiếtkế
đốitợngphảiquantâmđểsửalạiđịnhnghĩacủađốitợngtrongkhiđó
ngờisửdụngkhôngcầnhaybiếtvềđiềuđó,miễnlànhữngthayđổiđó
khôngt c ộngđếnviệcsửdụngđốitợngđiểm.
Tơngtựnhvậy,tacóthểbổsungthêmthuộctínhmàuvàmộtsốthao
táclênmộtđốitợngđiểm,đ c đợcmộtđốitợngđiểmmàu.Rõrànglà
đónggóichophépđơngiảnhoáviệcsửdụngmộtđốitợng.
Tronglậptrìnhhớngđốitợng,đónggóichophépdữliệucủađối
tợngđợcchelấpkhinhìntừbênngoài,nghĩalànếungờidùngmuốnt c
độnglêndữliệucủađốitợngthìphảigửiđếnđốitợngcácthông
điệp(message).ởđâycácphơngth c óngvaitròlàgiaodiệnbắtbu c
giữac c ốitợngvàngờisửdụng.Tacónhậnxét:
Lờigọiđếnmột
phơngthứclàtruyềnmộtthôngbáođếnchođốitợng
.
C cthôngđiệpgửitớiđốitợngnàosẽgắnchặtvớiđốitợngđóvàchỉ
đốitợngnàonhậnđợcthôngđiệpmớiphảithựchiệntheothôngđiệpđó;
chẳnghạnc c ốitợngđiểmđộclậpvớinhau,vìvậythôngđiệpthayđổi
toạđộđốitợngđiểmpchỉlàmảnhhởngđếncácthànhphầntoạđộtrong
pchứkhôngthểthayđổiđợcnộidungcủamộtđốitợngđiểmqkh c.
Môtảđố
i
tợngđ
i
ểm{
//dữliệu
intx,y;
//phơngth c
voidinit(intox,intoy);
voidmove(intdx,intdy);
voiddisplay();
};
Hình3.1Môt c c ốitợngđiểm
... Ngônng C+ +
-51-
Tấtnhiên,theonguyênt c ónggói,khônggántrịchocácthànhphần
dữliệucủađốitợngmộtcáchtrựctiếp.
p.x
=
2;
p.y
=
4;
Hơnnữa,khôngthểthựchiệnlờigọitớihàmthànhphầnnếukhôngchỉ
rõđốitợngđợcthamchiếu.Chỉthị:
init(5,2);
tronghàm
main
s c thểgâylỗibiêndịchnếutrongchơngtrình
khôngcóhàmtựdovớitên
init
.
2.1.5
2.1.5
2.1.5
2.1.5
Ph
Ph
Ph
Ph
ạ
ạ
ạ
ạ
m
m
m
m
vi
vi
vi
vi
l
l
l
l
ớ
ớ
ớ
ớ
p
p
p
p
Phạmvichỉraphầnchơngtrìnhtrongđ c thểtruyxuấtđếnmộtđối
tợngnàođó.TrongCcóbốnkiểuphạmviliênquanđếncáchthứcvàvịtrí
khaibáobiến:phạmvikhốilệnh,phạmvitệp,phạmvichơngtrìnhvà
phạmvihàmnguyênmẫu,trongđóthờngdùngnhấtlàphạmvitoànc c
(tệp,chơngtrình)vàphạmvicụcbộ(khốilệnh,hàm).M c íchcủaphạm
vilàđểkiểmsoátviệctruyxuấtđếncácbiến/hằng/hàm.
Đểkiểmsoáttruynhậpđếncácthànhphần(dữliệu,hàm )c acáclớp,
C+ +đarakháiniệmphạmvilớp.Tấtc c cthànhphầncủamộtlớpsẽ
đợccoilàthuộcphạmvilớp;trongđịnhnghĩahàmthànhphầncủalớpcó
thểthamchiếuđếnbấtkỳmộtthànhphầnnàokháccủacùnglớpđó.Tuân
theoýtởngđónggói ,C+ +coitấtc c cthànhphầncủamộtlớpcóliênhệ
vớinhau.Ngoàira ,C+ +c nchophépmởrộngphạmvilớpđếncáclớpcon
cháu,bạnbèvàhọhàng(Xemthêmchơng5-Kếthừav c cmụctiếpsau
đểhiểurõhơn).
2.1.6
2.1.6
2.1.6
2.1.6
T
T
T
T
ừ
ừ
ừ
ừ
kho
kho
kho
kho
á
á
á
á
x
x
x
x
á
á
á
á
c
c
c
c
đị
đị
đị
đị
nh
nh
nh
nh
thu
thu
thu
thu
ộ
ộ
ộ
ộ
c
c
c
c
t
t
t
t
í
í
í
í
nh
nh
nh
nh
truy
truy
truy
truy
xu
xu
xu
xu
ấ
ấ
ấ
ấ
t
t
t
t
Trongphầnnàytanóitớivaitr c ahaitừkhoáprivate
private
private
private
vàpublic
public
public
public
-
dùngđểx c ịnhthuộctínhtruyxuấtcủacácthànhphầnlớp.
Trongđịnhnghĩacủalớptacóthểx c ịnhkhảnăngtruyxuấtthành
phầncủamộtlớpnàođótừbênngoàiphạmvilớp.Tronglớppointcóhai
thànhphầndữliệuvàbathànhphầnhàm .C cthànhphầndữliệuđợckhai
báovớinhÃnlàprivate,
private,
private,
private,
c ncáchàmthànhvớinhÃnpublic
public
public
public
.private
private
private
private
và
public
public
public
public
l c ctừkhoáx c ịnhthuộctínhtruyxuất.Mọithànhphầnđ c
liệtkêtrongphầnpublic
public
public
public
đềucóthểtruyxuấttrongbấtkỳhàmnào.Những
...