chuong04-hotrooop-c2
DESCRIPTION
ho tro OPPTRANSCRIPT
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 1/51
Chương 3
HỖ TRỢ OOcủa Borland C++
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 2/51
Mục tiêu
• Biết cách sử dụng con trỏ this
• Sử dụng được hàm và lớp với ch th!
"ri#nd• $i%n th&c và sử dụng được constructor
• $i%n th&c và sử dụng được d#sstructor
• '(p tr)nh được với m*ng đ+i tượng,• $i%n th&c được thu-c t.nh và hàm st/tic
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 3/51
0-i dung
1,23 4n t(p1,53 6on trỏ this1,13 $àm "ri#nd
1,73 'ớp "ri#nd1,83 6onstructor 1,93 :#structor 1,;3 M*ng đ+i tượng
1,<3 =hu-c t.nh st/tic c>/ m-t lớp,1,?3 $ành vi st/tic c>/ 2 lớp1,2@3 =Am tt,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 4/51
1,23 4n t(p
6C pháp hi%n th&c cl/sscl/ss 6l/ss0/m#D puElic F G d/t/ H
Gm#thodH priv/t# F G d/t/ H
G m#thodH prot#ct#d F
G d/t/ HGm#thodH
I J KK cA L t& NJO
•6ác modi"i#rF puElicP priv/t#P prot#ct#dF tQ LhA/ chđ!nh đRc t.nh c>/ tQng thành phn ng/T s/u ch th!nàT, MRc đ!nh là priv/t#,• puElicF cho phUp Eên ngoài truT c(p int#r"/c#c>/ lớp,• priv/t#F các thành phn n-iP LhVng cho phUp Eênngoài truT c(p,• prot#ct#dF các thành phn dành cho lớp thQ/ LếtruT c(pP LhVng cho phUp các đ+i tượng LhVng ph*ilà con truT c(p,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 5/51
3.2- Con trỏ this
• thisF tQ
LhA/P làpoint#r chđến đ+itượng
hi%n hành,• Wược
dXngtrong cod#
cácm#thodc>/ lớp,
?
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 6/51
6on trỏ thisYclass
! "ri#at$ % int &'c'(') * "&lic %
#oid , ! (/0 * this -1 ) / * #oid g #oid ! 4this.& / 0 * c/0*
*
Trong cod$ của 5$thod%(/0* tương 6ương #7i this -1 ( / 0*
• 8hi c9n tr: tr; l< "oint$r của 6=i tư>ng hin h<nh%r$trn this*
• 8hi c9n tr: tr; l< ch@nh 6=i tư>ng hin h<nh%
r$trn 4this*• 8hi c9n tr: tr; l< "oint$r chA 6n ch@nh 6=i tư>ng hin h<nh%
r$trn this*• this l< "oint$r chA 6n 6=i tư>ng hin h<nh nn 4this l< 6=i
tư>ng hin h<nh
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 7/51
1,13 $àm "ri#nd3 ChA th; ,ri$nd giD" cho "hE" 0 h<5 hư7ng thủ tFc tr( cG"
IJ th<nh "h9n của 0 l7".• ChA 6;nh ,ri$nd trong "rotot("$ h<5 n<( trongKhai &Lo l7".
• H<5 ,ri$nd sM nhGn 0 6=i tư>ng thNc l7" n<(l<5 tha5 s= # 6P( l< h<5 hư7ng thủ tFc
•8hi hin thQc h<5 ,ri$nd'Khng cS chA th; ,ri$nd na.
•8hi hin thQc h<5 cS tha5 s= 5Uc 6;nh &n ngo<i l7"' KhngchA 6;nh tr; 5Uc 6;nh. V cS
tr; 5Uc 6;nh sM gP( lWi lDc co5"il$
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 8/51
1,73 'ớp "ri#nd
• =ưZng t& hàm "ri#ndP lớp "ri#nd được truT c(p M[\ thànhphn c>/ 2 lớp cA Lh/i Eáo đRc t.nh nàT,• =h. dụFclass XDpriv/t# F
int S#cr#t J KK đi]u E. m(t ^đi_m` ,ri$nd class B * KK ah/i Eáo lớp "ri#nd ,,,,,,,IJclass B KK ah/i Eáo lớp B
D puElicF #oid Chang$ X 4T KK Sử/ đi_m cho đ+i tượng lớp b D =3HS#cr#t J I KK truT c(p thành phn priv/t# c>/ đ+i tượng
lớp b ,,,,,,
I J
• 8hi B l< ,ri$nd của X thtrong B cS "hươngthYc nhGn 6=i tư>ngl7" X l< tha5 s=.
• B là "ri#nd c>/ b nhưngchư/ chc b là "ri#nd c>/B3 Wi]u nàT phụ thu-c làtrong B cA Lh/i Eáo b là"ri#nd c>/ B h/T LhVng,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 9/51
1,83 6onstructor
6A th_ Lết hợp đ!nh ngh/ và Lhei tfo tr! cho EiếnđZn, =h. dụF int 5/Z*6A th_ làm đi]u tưZng t& với Eiến đ+i tượng nhconstructor,
Constrctor%H<nh #i 6ư>c thQc thi nga( lDc6;nh ngh[a &in 6=i tư>ng.Mi lớp đ]u hi_n nhiên cA 2 constructor mRc đ!nhc>/ ngVn ng, W/ s+ các constructor mRc đ!nh c>/ ngVn ng
jjk cA tác vụ A/ tr+ng E- nhớ cho các d li%uc>/ đ+i tượng thu-c lớp nếu lớp nàT LhVng hi%nth&c các constructor,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 10/51
:#moF :#"/ult constructor c>/ B6
• :#"/ultconstructorc>/ B6
LhVng A/tr+ng E-nhớ ch/d li%u c>/đ+i tượng
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 11/51
6onstructor ^,,,`
6C pháp 6onstructorFpuElicF =ên'ớp ^ =h/m s+`
D G cod#sH
I
6ác tác vụ thưngdXng trong cod# c>/constructorF
án tr! cho cácthành phn d li%utQ th/m s+,
6p tài nguTênnếu cn ^ cp E-nhớ đ-ng,,,`
,,,,
• 6onstructor ph*i là m-t hành vi puElic v)
là cVng cụ đ!nh ngh/ Eiến đ+i tượng,• 6onstructor cA u/n h% chRt chq với cácd li%u c>/ đ+i tượng nên LhVng th_ làhành vi st/tic,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 12/51
6onstructorY,0ếu 2 lớp đ cA hi%n th&c constructor th) constructor mRc
đ!nh sq LhVng cn được áp dụng cho lớp nàT n/,6ác constructor tre thành nhng h)nh thc đ!nh ngh/ Eiếnđ+i tượng,0g/T Lhi đ!nh ngh/ đ+i tượngP cA th_ cA m-t s+ tác vụ sqđược th&c thi tXT thu-c vào n-i dung constructor,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 13/51
6onstructor ^,,,`
6onstructor LhVng cA tên hàm riêng mà sửdụng tên lớp v) cC pháp đ!nh ngh/ Eiến đ+itượngF =ên'ớp jE^th/ms+`J
ahVng cA Li_u tr* tr! Lhi hi%n th&cconstructor ^LhVng cA c* void`,6onstructor mRc đ!nh ^chunP d#"/ult` làconstructor a$40 =$bM S,
Mwi lớp ch cA th_ cA =\ Wb 2 d#"/ultconstructor ^ sq cA lwi X5&igit( &$t\$$nConstrctor0] and Constrcor2 ] `
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 14/51
6onstructorY,
• M-t cl/ss cA th_ cA nhi]u 6onstructor chonhng t)nh hu+ng đ!nh ngh/ đ+i tượngLhác nh/u,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 15/51
6onstructor ^,,,`=h t& th&c thi các
constructorF =Qtrong r/ ngoài,0ếu lớp 6 cA dli%u là 2 đ+i tượng
boE ^lớp b` rxi
BoE ^lớp B` th) Lhiđ!nh ngh/ đ+itượng 6oE ^lớp6`P constructor c>/lớp b sq đượcth&c thi trước rxi
đến constructorc>/ B rxi mới đếnconstructor c>/ 6v)F bjEP BoE làthành phn yT
d&ng nên 6oE,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 16/51
6onstructor ^,,,`$/i lofi constructorF 6onstructor thưng^th/m s+ là các d li%u đZn`P constructors/o chUp ^copT constructor3 th/m s+ là 2đ+i tượng cXng lớp nhzm s/o chUp tr! tQ
đ+i tượng đ cA và đ+i tượng hi%n hành`,=h/m s+ c>/ 2 m#thod là 2 đ+i tượng th)nên dXng th/m Lh*o với toán tử { đ_ tiết
Li%m E- nhớ st/cL,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 17/51
6onstructor ^,,,`
M-t lớp LhVng cA constructor s/o chUpmà lfi đ!nh ngh/ đ+i tượng Ezng cC pháp
=ên'ớp jE5 | jE2J
=r)nh Eiên d!ch sq dXng constructor s/ochUp chun c>/ ngVn ng đ_ s/o chUp dli%u c>/ jE2 s/ng jE5 ^gi+ng s/o chUpcu trCc c>/ phUp gán cu trCc`
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 18/51
6onstructor^,,,`Th@ dF% ^7" 5 t: #_ng tr_n trn 5<n hnhcl/ss 6ircl#D int PT P r J KK tym và Eán L.nh int EL6olorJ KK mu n]n
int dr/}6olorJ
puElicF 6ircl#^` D |T|r|EL6olor|dr/}6olor|@J I 6ircl# ^ int P int TTP int rrP int c2P int c5` D | J T|TTJ r|rrJ EL6olor| c2 J Er/}6olor| c5J I 6ircl# ^ 6ircl# { c`
D c|c,J T|c,TJ r|c,rJ EL6olor| c,EL6olor J dr/}6olor| c,dr/}6olorJ IIJvoid m/in^`D 6ircl# v2J 6ircl# v5 ^8@P2@@P1@P8P9`J
6ircl# v1 ^v5`J 6ircl# ~pv2 | n#} 6ircl# ^ 25@P7<@P;@P2@P1`J 6ircl# ~pv5| n#} 6ircl#^~pv2`JI
6onstructor
chunP gán tr!tr+ng
6onstructor 8th/m s+ gán 8 tr!
thu-c t.nh
W!nh ngh/ Eiếnth#o đCng muconstructor đ
Lh/i Eáo
6opT constructor
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 19/51
6onstructor^,,,` Th@ dF% `P( dQng l7" 5:ng cLc s= int 5 t: &ng
int4 a' n' cb" "hLt 6Nng &N nh7 cS cLc constrctor%6onstructor chun gán tr! @,6onstructor nh(n th/m s+ int m nhzm gán s+ phn tử c>/m*ng là mP cp phát s€n E- nhớ,6onstructor s/o chUp tr! tQ 2 đ+i tượng m*ng đ cA,
6onstructor n+i tr! tQ 5 m*ng đ cA vào m*ng hi%n hành ,
cl/ss \0=b‚D int ~/P nJ puElicF
\0=b‚^` J \0=b‚ ^int m`J \0=b‚ ^ \0=b‚{ jE2`J \0=b‚ ^ \0=b‚{ jE2P \0=b‚{ jE5`JIJ
Sinh viên t& hi%n th&cng/T tfi lớp cácconstructor nàT,ợi F6p E- nhớ đ-ng chom*ng intF
/| n#} intƒn„J
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 20/51
6onstructor^,,,` Th@ dF- Hin thQc ti l7"F
`P( dQng l7" 5a trGn #ng cLc s= int' cb" "hLt 6Nng &N nh7cS cLc constrctor #< 5$thods% 6onstructor chun gán tr! @, 6onstructor nh(n th/m s+ int nn nhzm gán cp m/ tr(n là nnP cpphát s€n E- nhớ, 6onstructor s/o chUp tr! tQ 2 đ+i tượng m/ tr(n đ cA,
ợi v] 5 cách u*n l m/ tr(n vuVngF
ng int4 ng int44
: li%u int~mP nJ int~~mP nJ
6p E-nhớ
m|n#} intƒn~n„J m| n#} int~ ƒn„J"or ^int i|@ J iGn J i ` mƒi„| n#} intƒn„J
mi mƒi~n„ mƒi„ƒ„
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 21/51
1,93 :#structor
=)nh hu+ng l(p tr)nh
6p E- nhớ đ-ngP sử dụng ong uên tr* 6fn tài nguTên c>/ h% th+ng,
Me "il#P sử dụng ongP uên đAng "il#,
6A cách nào t& đ-ng hA/ các vi%c nàT
LhVng…i*i pháp là :†S=‚‡6=j‚
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 22/51
1,93 :#structor ^,,,`
$ành vi được th&c thi Lhi đ+i tượng LhVng cntxn tfi, =hi gi/n s+ng c>/ đ+i tượngF =Q lCc đ!nh ngh/đ+i tượng cho đến Lhi Lh+i phát Ei_u cA ch/ đ+itượng được th&c thi ong,
i" ^ H8` D 6l/ssb oE J KK đ+i tượng oE Et đu txn tfi oE,m#thod2^` J ,,,,,, I KK oE chết v) hết Lh+i ch/ nA
CD "hL" $strctor "&lic% e Tn^7" ! fcod$s1
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 23/51
1,93 :#strustor ^,,,`
:#structor LhVng cA tên hàm riêng mà sửdụng tên lớp với L t& NˆO đi đu,ahVng cA Li_u tr* tr! Lhi hi%n th&cd#structor ^LhVng cA c* void`,
:#structor LhVng được cA th/m s+,6ác tác vụ thưng dXng trong cod# c>/d#structorF =‚‰ =Š\ 0‡‹Œ0,
:#structor ph*i cA đRc t.nh puElicP LhVngth_ là st/tic ^gi+ng constructor`,Mwi cl/ss ch cA th_ cA t+i đ/ 2 d#structor ,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 24/51
1,93 :#structor ^,,,`=h. dụF 'ớp m*ng các s+ int
cl/ss \0=b‚D int ~ /P n J puElicF \0=b‚^` D n|@J /|0‡''JI \0=b‚^ \0=b‚{`J
eJVTXR ! i, a d$l$t$ a* int g#tSi#^` D r#turn nJ I int~ g#tbrr/T^` D r#turn /J IIJ\0=b‚FF \0=b‚^ \0=b‚{ oE`D n| oE,nJ i" ^nH@`
D /| n#} int ƒn„J "or ^int i|@JiGnJi` /ƒi„| oE,/ƒi„J II
constructor chun vàconstructor s/o chUp
:#structor nhzm tr* tài
nguTên
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 25/51
1,;3 M*ng đ+i tượng W!nh ngh/ m*ng đ+i tượng với constructor chun6l/ss0/m# jEbr2ƒ 2@„J6l/ss0/m# ~jEbr5 | n#} 6l/ss0/m#ƒ2@„J
W!nh ngh/ m*ng đ+i tượng với các contructor Lhác nh/u6l/ss0/m# jEbr1ƒ7„ | D ^p/r/ms@`P ^p/r/ms2`P
^p/r/ms5`P ^p/r/ms1` I J6l/ss0/m# ~jEbr7ƒ1„ | D n#} 6l/ss0/m#^p/r/ms@`P n#} 6l/ss0/m#^p/r/ms2`P n#} 6l/ss0/m#^p/r/ms5` IJ 6l/ss0/m#~~ jEbr8 | n#} 6l/ss0/m#~ ƒ1„J
jEbr8ƒ@„| n#} 6l/ss0/m# ^p/r/ms@`J jEbr8ƒ2„| n#} 6l/ss0/m# ^p/r/ms2`J jEbr8ƒ5„| n#} 6l/ss0/m# ^p/r/ms5`J6ác p/r/msŽ ng với các constructor Lhác nh/u,Ž#m th. dụ jBb‚‚,6kk
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 26/51
1,<3 'ớp cA d li%u st/tic
st/tic| tnh
: li%u st/tic c>/ 2 lớp là d li%u chung c>/ miđ+i tượng thu-c lớp nên cn được gi là class
variables
: li%u st/tic thưng được dXng Lhi các đ+itượng cXng lớp cA d li%u m/ng cXng m-t tr!,
: li%u st/tic được đRt ngoài Lh+i E- nhớ c>/các đ+i tượng thu-c lớp và ph*i được Lh/i Eáolfi cng như cA th_ Lhei tfo tr!,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 27/51
1,<3 'ớp cA d li%u st/tic ^,,,`
=h. dụF Mi nhyn viên trong 2 phng E/n đ]u Eiết phngE/n m)nh cA E/o nhiêu ngưi,
$i%n th&c 23 ahVng dXng d li%u st/tic
cl/ss 0$b0‘\†0
D ch/r =ênƒ82„J
long 'ưZngJ
int S+0hyn‘iênJ
IJ
’$o/“ P25@@@@P 8
’=uTết“ P1?@@@@P 8
’=un“ P82@@@@P 8
’'uT%n“ P22@@@@P 8
’khưZng“ P598@@@P 8
i* sử cA 8 nhynviênP lưu tr nhưtrong E*ng
ahi thêm vào 2 nhyn viênP c* 9 đ+i tượng cXng ph*i c(p nh(t d li%uS+0hyn‘iên, 0ếu t/ uên 2 phát Ei_u c(p nh(tP d li%u nàT E! mt nhtuán, =ưZng t& Lhi cA 2 nhyn viên thVi vi%c,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 28/51
1,<3 'ớp cA d li%u st/tic ^,,,`=h. dụF Mi nhyn viên trong 2 phng E/n đ]u Eiết phngE/n m)nh cA E/o nhiêu ngưi,
$i%n th&c 53 :Xng d li%u st/tic
cl/ss 0$b0‘\†0
D ch/r =ênƒ82„J
long 'ưZngJ
st/tic int S+0hyn‘iênJ
IJ
int 0$b0‘\†0FF S+0hyn‘iên|@J
’$o/“ P25@@@@
’=uTết“ P1?@@@@
’=un“ P82@@@@
’'uT%n“ P22@@@@
’khưZng“ P598@@@
S+0hyn‘iên 8
ahi thêm vào 2 nhyn viênP ch cn 2 phát Ei_u c(p nh(t ^ trongconstructor c>/ lớp`, ahi m-t nhyn viên thVi vi%cP ch cn 2 phátEi_u c(p nh(t ^trong d#structor` d li%u nàT luVn nht uán,
=hành phnst/tic được
đ_ ri và làchung c>/
mi đ+itượng cXng
lớp
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 29/51
1,?3 'ớp cA hành vi st/tic
$ành vi st/tic c>/ 2 lớp là hành vi cho phUp Eên ngoàisử dụng mà LhVng cn đ!nh ngh/ 2 đ+i tượng thu-clớp,‘) cA th_ sử dụng hành vi st/tic mà LhVng cn đ+i tượng
thu-c lớp, :o v(T cod# c>/ hành vi nàT sq truT c(pnhng d li%u LhVng thu-c v] thu-c t.nh c>/ lớp,6ách sử dụng 2 thành phn st/tic c>/ lớpF6l/ss0/m#,st/tickrop#rtT
6l/ss0/m#,st/ticM#thod^`JjE,st/tickrop#rtT jE,st/ticM#thod^`J
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 30/51
1,?3 'ớp cA hành vi st/tic ^,,,`• =h. dụ”includ# Gm/th,hH”includ# Gconio,hHcl/ss MTM/thD puElicF static douEl# Srt^douEl# ` D r#turn srt^`JI static douEl# ko} ^douEl# P douEl# T` D r#turn po}^PT`JI static douEl# Sin ^douEl# ` D r#turn sin^`JIIJvoid m/in^`D "or ^int i|@ J iG2@J i` cout GG (ath.jkrti` GGNnOJ cout GG ’ 1–8 |’ GG (ath.o\3'` GGNnOJ
cout GG ’sin o" ?@ d#gr##|’ GG(ath.jinJm2` GGNnOJ g#tch^`JI
Sử dụng hànhvi st/tic màLhVng cn
đ!nh ngh/ đ+itượng,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 31/51
1,2@3 =Am tt
this F con trỏ c>/ đ+i tượng hi%n hành,constructorF $ành vi được th&c thi ng/T lCc đ!nhngh/ Eiến, Mwi constructor đAng v/i tr như 2t#mpl/t# ^mu` đ!nh ngh/ đ+i tượng,
MRc đ!nhP mwi lớp cA constructor chun c>/ngVn ng — thưng là gán tr! tr+ng cho mithành phn d li%u c>/ đ+i tượng thu-c lớp Lhiđ+i tượng được đ!nh ngh/ — nếu lớp nàT LhVngcA hi%n th&c constructor,
0ếu 2 lớp đ cA hi%n th&c constructor th)constructor mRc đ!nh c>/ ngVn ng LhVng cnđược áp dụng cho các đ+i tượng thu-c lớp nàTn/,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 32/51
1,2@3 =Am tt ^,,,`
6onstructor mRc đ!nh ^chun` là constructorLhVng th/m s+,M-t lớp ch cA th_ cA t+i đ/ 2 constructor chun,6C pháp constructor F
6l/ss0/m# ^k/r/ms` D Gcod#H IMRc đ!nhP m-t lớp cA constructor s/o chUp đ_gán d li%u cho cu trCc đ+i tượng hi%n hànhEzng với d li%u c>/ đ+i tượng đ cA,
6l/ss0/m# 0#}jE | †ist#djEJ hoRc 6l/ss0/m# 0#}jE ^†ist#djE`J6A th_ đ!nh ngh/ m*ng đ+i tượng th#o cácconstructor Lhác nh/u,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 33/51
1,2@3 =Am tt ^,,,`
=m v&c ^scop#` c>/ 2 Eiến Et đu tQ lCc đ!nhngh/ Eiến nàT cho đến hết Lh+i phát Ei_u ch/ nA,=hi gi/n s+ng c>/ đ+i tượng Et đu tQ lCc cod#đ!nh ngh/ đ+i tượng được th&c thi cho đến hếtth&c thi hết Lh+i phát Ei_u ch/ nA,
=rfng thái ^st/tus` c>/ 2 đ+i tượng là t(p g./ tr! c>/các thu-c t.nh, 0hư thế trfng thái c>/ đ+i tượng cAth_ th/T đ˜i th#o thi gi/n,:#structor là hành vi được th&c thi vào lCc đ+itượng 6$™=,6C pháp d#structorF
ˆ6l/ss0/m# ^void` D Gcod#H IMwi lớp ch cA t+i đ/ 2 d#structor,
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 34/51
1,2@3 =Am tt ^,,,`
: li%u st/tic là d li%u chung cho mi đ+i tượngcXng lớp và được #m như là 2 Eiến toàn cục,$ành vi st/tic c>/ 2 lớp là hành vi cho phUp Eênngoài gi mà LhVng cn ph*i txn tfi 2 đ+i tượngthu-c lớp,
6C pháp gi hành vi st/ticF 6l/ss0/m#,st/ticM#thod^p/r/ms`J
jE,st/ticM#thod^p/r/ms`J
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 35/51
=rc nghi%m
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 36/51
6yu 2
=rong cod# c>/ 2 m#thod trong 2 lớpPcác cách viết nào s/u đyT s/i…
/3 this, krop#rtT2 | 8J
E3 this 3H krop#rtT2|8J
c3 ^~this`,krop#rtT2|8Jd3 ^~this`3Hkrop#rtT2|8J
/
d
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 37/51
6yu 5
6hn phát Ei_u s/i
/3 $àm "ri#nd c>/ 2 lớp là hàm được phUp
truT c(p mi thu-c t.nh c>/ lớp,E3 $àm "ri#nd c>/ 2 lớp là hàm ch được phUp
truT c(p thu-c t.nh puElic c>/ lớp,
c3 $àm "ri#nd c>/ 2 lớp là hàm LhVng đượcphUp truT c(p thu-c t.nh prot#ct#d c>/ lớp,
E
c
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 38/51
6yu 1
cl/ss b được Lh/i Eáo là "ri#nd c>/cl/ss B ^ trong Lh/i Eáo c>/ cl/ss b`,=hVng thưng trong cl/ss b cA .t nht
m-t hành vi nh(n 2 đ+i tượng cl/ss Blà th/m s+,
/3 WCng,
E3 S/i,c3 ahVng Eiết,
/
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 39/51
6yu 7
6onstructor c>/ 2 cl/ss
/3 Bu-c ph*i là puElic,E3 6A th_ là priv/t#
/
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 40/51
6yu 8
6hn các phát Ei_u s/i,/3 0ếu 2 us#r cl/ss trong 6 LhVng cA
constructor th) LhVng th_ sử dụng đ+i
tượng thu-c lớp nàT,E3 0ếu 2 us#r cl/ss trong 6 LhVng cA
constructor th) vn cA th_ sử dụng đ+i
tượng thu-c lớp nàT,c3 :#structor c>/ 2 lớp cA th_ cA th/ms+,
/
E
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 41/51
6yu 9
$T chn 2 đ] ngh! t+t nht cho lớp s/uFcl/ss bD int ~/ J
puElicF b^` D /| n#} int ƒ2@@@„JIIJ
/3 ahVng cA g) cn c*i tiến,E3 =hêm các m#thod cA ngh/ hZn,c3 6n yT d&ng d#structor,c
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 42/51
6yu ;
6hn phát Ei_u s/i,
6A h/i lớp bPB đ]u cA constructorP B làcon puElic c>/ b, ahi đ!nh ngh/ 2 đ+itượng lớp B,
/3 6onstructor c>/ b được th&c thitrướcP constructor c>/ B được th&c this/u,
E3 6onstructor c>/ B được làm th&c thiPconstructor c>/ b được th&c thi s/u,
E
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 43/51
6yu <
6hn phát Ei_u s/i,
6A h/i lớp bPB đ]u cA constructorP B làcon puElic c>/ b, ahi h>T 2 đ+i tượnglớp B,
/3 :#structor c>/ b được th&c thi trướcPd#structor c>/ B được th&c thi s/u,
E3 :#structor c>/ B được th&c thi trướcPd#structor c>/ b được th&c thi s/u,
/
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 44/51
6yu ?
6hn các phát Ei_u s/i
/3 6onstructor LhVng th_ cA th/m s+,
E3 6onstructor cA th_ cA th/m s+,c3 6onstructor Eu-c ph*i cA th/m s+,
/
c
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 45/51
6yu 2@
6hn phát Ei_u đCng,/3 6onstructor và d#structor cA th_ cA th/m s+,E3 6onstructor và d#structor LhVng th_ cA th/m s+,c3 6onstructor và d#structor Eu-c ph*i cA th/m s+,
d3 6onstructor cA th_ cA th/m s+P d#structor Eu-c ph*icA th/m s+,#3 6onstructor cA th_ cA th/m s+P d#structor LhVng
th_ cA th/m s+,"3 :#structor cA th_ cA th/m s+P constructor Eu-c ph*i
cA th/m s+,g3 :#structor cA th_ cA th/m s+P constructor LhVng th_
cA th/m s+,
#
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 46/51
6yu 22
: li%u st/tic c>/ 2 lớp ph*i được Lh/iEáo lfi Eên ngoài lớp,
/3 WCng
E3 S/i
/
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 47/51
6yu 25
6hn các phát Ei_u s/iF$ành vi st/tic c>/ 2 lớp là hành vi
/3 ahVng cho phUp Eên ngoài sử dụng v) làhành vi đRc E%t riêng c>/ lớp,E3 6ho phUp Eên ngoài sử dụng mà LhVng
cn ph*i cA 2 đ+i tượng thu-c lớp,
c3 6h cho phUp Eên ngoài sử dụng trongtrưng hợp LhVng txn tfi 2 đ+i tượng thu-clớp,
/
c
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 48/51
6yu 21
=m v&c c>/ 2 đ+i tượng
/3 'à Lh+i všn E*n chưZng tr)nh L_ tQlCc đ!nh ngh/ đ+i tượng đến hết Lh+ich/ nA,
E3 'à vXng všn E*n chưZng tr)nh cA th_truT ut được đ+i tượng,
c3 'à toàn E- chưZng tr)nh,
/
E
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 49/51
6yu 27
6hn các phát Ei_u s/i=hi gi/n s+ng c>/ 2 đ+i tượngF/3 'à thi gi/n th&c thi chưZng tr)nh,E3 'à thi gi/n L_ tQ lCc đ+i tượng được
đ!nh ngh/ đến Lhi chưZng tr)nh th&cthi ong,
c3 'à thi gi/n L_ tQ lCc đ+i tượng đượcđ!nh ngh/ đến Lhi Lh+i chưZng tr)nhch/ đ+i tượng được th&c thi ong,
/
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 50/51
6yu 28
=rfng thái c>/ đ+i tượngF
/3 'à Lh+i E- nhớ ch/ d li%u mV t*đ+i tượng,
E3 'à t(p các g./ tr! thu-c t.nh hi%n hànhc>/ đ+i tượng,
c3 'à chưZng tr)nh ch/ đ+i tượng,
d3 'à m-t thu-c t.nh c>/ đ+i tượng,
E
7/18/2019 Chuong04-HoTroOOP-C2
http://slidepdf.com/reader/full/chuong04-hotrooop-c2 51/51
Žin c*m Zn