chuong04-hotrooop-c2

51
  Chương 3 HTROO ca Borland C++

Upload: vinh-nguyen-huu

Post on 14-Jan-2016

1 views

Category:

Documents


0 download

DESCRIPTION

ho tro OPP

TRANSCRIPT

Page 1: Chuong04-HoTroOOP-C2

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++

Page 2: Chuong04-HoTroOOP-C2

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

Page 3: Chuong04-HoTroOOP-C2

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,

Page 4: Chuong04-HoTroOOP-C2

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,

Page 5: Chuong04-HoTroOOP-C2

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,

?

Page 6: Chuong04-HoTroOOP-C2

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

Page 7: Chuong04-HoTroOOP-C2

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$

Page 8: Chuong04-HoTroOOP-C2

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,

Page 9: Chuong04-HoTroOOP-C2

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,

Page 10: Chuong04-HoTroOOP-C2

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

Page 11: Chuong04-HoTroOOP-C2

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,

Page 12: Chuong04-HoTroOOP-C2

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,

Page 13: Chuong04-HoTroOOP-C2

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 ] `

Page 14: Chuong04-HoTroOOP-C2

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,

Page 15: Chuong04-HoTroOOP-C2

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,

Page 16: Chuong04-HoTroOOP-C2

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,

Page 17: Chuong04-HoTroOOP-C2

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`

Page 18: Chuong04-HoTroOOP-C2

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

Page 19: Chuong04-HoTroOOP-C2

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

Page 20: Chuong04-HoTroOOP-C2

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„ƒ„

Page 21: Chuong04-HoTroOOP-C2

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‚

Page 22: Chuong04-HoTroOOP-C2

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

Page 23: Chuong04-HoTroOOP-C2

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 ,

Page 24: Chuong04-HoTroOOP-C2

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

Page 25: Chuong04-HoTroOOP-C2

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

Page 26: Chuong04-HoTroOOP-C2

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!,

Page 27: Chuong04-HoTroOOP-C2

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,

Page 28: Chuong04-HoTroOOP-C2

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

Page 29: Chuong04-HoTroOOP-C2

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

Page 30: Chuong04-HoTroOOP-C2

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,

Page 31: Chuong04-HoTroOOP-C2

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/,

Page 32: Chuong04-HoTroOOP-C2

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,

Page 33: Chuong04-HoTroOOP-C2

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,

Page 34: Chuong04-HoTroOOP-C2

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

Page 35: Chuong04-HoTroOOP-C2

7/18/2019 Chuong04-HoTroOOP-C2

http://slidepdf.com/reader/full/chuong04-hotrooop-c2 35/51

 

=rc nghi%m

Page 36: Chuong04-HoTroOOP-C2

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

Page 37: Chuong04-HoTroOOP-C2

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

Page 38: Chuong04-HoTroOOP-C2

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,

/

Page 39: Chuong04-HoTroOOP-C2

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#

/

Page 40: Chuong04-HoTroOOP-C2

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

Page 41: Chuong04-HoTroOOP-C2

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

Page 42: Chuong04-HoTroOOP-C2

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

Page 43: Chuong04-HoTroOOP-C2

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,

/

Page 44: Chuong04-HoTroOOP-C2

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

Page 45: Chuong04-HoTroOOP-C2

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+,

#

Page 46: Chuong04-HoTroOOP-C2

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

/

Page 47: Chuong04-HoTroOOP-C2

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

Page 48: Chuong04-HoTroOOP-C2

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

Page 49: Chuong04-HoTroOOP-C2

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,

/

Page 50: Chuong04-HoTroOOP-C2

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

Page 51: Chuong04-HoTroOOP-C2

7/18/2019 Chuong04-HoTroOOP-C2

http://slidepdf.com/reader/full/chuong04-hotrooop-c2 51/51

Žin c*m Zn