Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 1
PHN II. LP TRÌNH HƯỚNG ĐỐI TƯỢNG
Chương10.Kháinimvlptrìnhhướng đốitượng
Chương11.Lp đốitượngcalp
Chương12.Chnghàm(functionoverloading)
Chương13.Hàmtovàhàmhy
Chương14.Chngtoánt(operatoroverloading)
Chương15.Skếtha
Chương16.Skếtniđộng-Hàm o
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 2
Chương 10. Khái nim v lp trình hướng đối tượng
I.Lptrìnhcutrúcvàlptrìnhhướng đốitượng
II.ckháinimcơbntronglptrìnhhướng đốitượng
III.cngônnglptrìnhhướng đốitượng
IV.Phântíchvàthiếtkếtheohướng đốitượng
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 3
I. Lp trình cu trúc và lp trình hướng đối tượng
1.Lptrìnhcutrúc
2.Lptrìnhhướng đốitượng
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 4
1. Lp trình cu trúc
Tưtưởngchínhcalptrìnhcutrúc
(structural programming) chia chương
trìnhthànhcácchươngtrìnhcon(trongC++
gilàhàm)vàcácmodule.Mihàmthc
hinmtnhimvxác địnhnào đó,cònmi
modulebaogmmtshàm.
Khicácchươngtrìnhngàycànglnvàphc
tpthìlptrìnhcutrúcbtđầubclnhng
đimyếu.Vàchodùcchươngtrìnhln
này đượccài đặtttđếnmythìnóvn
quáphctp.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 5
1. Lp trình cu tc (tiếp)
Môhìnhlptrìnhcutrúcnhưsau:
D liu D liu D liu
Hàm Hàm Hàm Hàm
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 6
1. Lp trình cu tc (tiếp)
Lýdochínhlàmchophươngpháplptrìnhcutrúc
tbclnhng đimyếulàdliucachương
trìnhkhông đượccoitrng.Cácdliuquantrng
cachươngtrình đượclưutrtrongcácbiếntoàn
cc,nóchophépmihàmcóthtruynhp.Màcác
hàmliđượcviếtbinhiungườilptrìnhkhác
nhaunênnguycơhng,mtdliulàrtln.
Hơnna,vìnhiuhàmtruynhpcùngmtdliu
nênkhidliuthay đổithìcáchàmnàycũngphi
thay đổitheo.Victìmcáchàmcnthay đổiđãk
nhưngvicthay đổicáchàmnàysaocho đúngcòn
khóhơn.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 7
1. Lp trình cu tc (tiếp)
Lptrìnhcutrúcthườngkhóthiếtkế
chươngtrìnhbivìcthànhphnchínhca
chươngtrìnhcutrúc(làhàmvàcutrúcd
liu)khôngmôphng đượcthếgiithc.
d:gistacnviết để togiaodinđồ
havingườisdngnhưmenu,cas,nút
bm,…Nếulptrìnhcutrúcthìcâuhiđặt
ralàdùngcutrúcdliunào?Cáchàmcn
làmgì?
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 8
2. Lp trình hướng đối tượng
Ýtưởngchínhcalptrìnhhướng đốitượng(object
orientedprogramming,OOP)làkếthpcdliu
vàcáchàmthaotáctrêndliuđóvàomtthcth
chươngtrìnhgi đốitượng.
Cáchduynhtđể truynhpdliucamtđối
tượnglàthôngquacáchàmcađốitượng đó(trong
C++,cáchàmcađốitượng đượcgilàcáchàm
thànhviên).Nếutamunđọcdliutrongmtđối
tượngthìtaphigimthàmthànhviêncađối
tượng đó.Hàmthànhviênnàysđọcdliuvàtr
vgiátrchota.Takhôngthtruynhptrctiếpd
liucađốitượng.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 9
2. Lp trình hướng đối tượng (tiếp)
Môhìnhlptrìnhhướng đốitượng
D liu
Hàm tnh viên
Hàm tnh viên
D liu
Hàm tnh viên
Hàm tnh viên
D liu
Hàm tnh viên
Hàm tnh viên
Đối tượng
Đối tượng
Đối tượng
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 10
2. Lp trình hướng đối tượng (tiếp)
Tronglptrìnhhướng đốitượngdliuđượcnđi
để tránhnhngthay đổivôtìnhlàmhngdliu.
Dliuvàhàmtác độnglên đượcđónggóitrong
mtthcthchươngtrình.
Nếuchúngtamunthay đổidliutrongmtđối
tượngthìchúngtaphibiếtcnhxáchàmnào
tươngtácvinó;tclàcáchàmthànhviêntrong
đốitượng đó.Khôngcóhàmnàocóthtruynhp
dliu. Điunàygiúp đơnginhoávicviết,g
ri,vàbotrìchươngtrình.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 11
2. Lp trình hướng đối tượng (tiếp)
Môhìnhcôngtykinhdoanh
D liu phòng
kinh doanh
Trưởng phòng
kinh doanh
Phòng kinh
doanh
Nhân viên phòng
kinh doanh
D liu phòng
nhân s
Trưởng phòng
nhân s
Nhân viên phòng
nhân s
D liu phòng
tài v
Trưởng phòng tài
v
Nhân viên phòng
tài v
Phòng nhân sPhòng tài v
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 12
2. Lp trình hướng đối tượng (tiếp)
Tómli,lptrìnhhướng đốitượnglàmt
cáchtchcchươngtrình(OOP).Hướng đối
tượnglàphixemthiếtkếchươngtrìnhnhư
thếnàochkhông đivàochitiếttnglnh.
Cthlàcchươngtrìnhhướng đốitượng
phiđượctchcxungquanhcác đốitượng.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 13
2. Lp trình hướng đối tượng (tiếp)
Ngườita đãtnghpcác đặctínhcaLTHDT:
1.Ttcđều đốitượng.
2.Chươngtrìnhhướng đốitượngcóthcoilàmttp
hpcác đốitượngtươngtácvinhau
3.Miđốitượngtrongchươngtrìnhcócácdliu
độclpcamìnhvàchiếmbnhriêngcamình.
4.Miđốitượng đềucódng đặctrưngcalpcác
đốitượng đó.
5.Ttccác đốitượngthucvcùngmtlpđều
chànhvigingnhau.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 14
II. Các khái nim cơ bn trong lp trình hướng đối tượng
1. Đốitượng(object)
2.Lp(class)
3.Skếtha(inheritance)
4.Ssdngli(Reusability)
5.Sựđahìnhvàchnghàm(polymorphismandoverloading)
6.Chegiudliu
7.Truynthôngbáo
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 15
1. Đối tượng (object)
Nhưta đãbiết, đốitượnglàmtthànhphnchương
trìnhchacdliuvàchàmthaotáctrênd
liuđó.
Tronglptrìnhhướng đốitượngchúngtakhông đi
tìmchchiachươngtrìnhthànhcáchàm đitìm
cáchchiachươngtrìnhthànhcác đốitượng.Vic
chiachươngtrìnhthànhcác đốitượnglàmchovic
thiếtkếchươngtrìnhtrnênddànghơnvìcác đối
tượngtrongchươngtrìnhrtgngũivicác đối
tượngtrongthctế.
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 16
1. Đối tượng (tiếp)
Vídvmtsđốitượngtrongthctếcóthtrthành
đốitượngtrongchươngtrình.
Các đốitượngvtlý:
nCácthangmáytrongchươngtrình điukhinthángmáy
nCácybaytrongchươngtrình điuhànhbay
nCácxeôtôtrongchươngtrìnhmôphnglunggiaothông.
cphnttrongmôitrườngngườisdngmáytính:
nCáccas
nCácmenu
nCác đốitượng đồ ha(nhưhìnhchnht,hìnhtròn,hìnhtam
giác,…)
nChut,bànphím,các đĩa,máyin
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 17
1. Đối tượng (tiếp)
Vídvmtsđốitượngtrongthctếcóthtrthành
đốitượngtrongchươngtrình.
Cáccutrúcdliu:
nNgănxếp
nHàng đợi
nDanhsáchlnkết
nCâynhphân
Nhâns:
nNhânviên
nSinhviên
nKháchhàng
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 18
1. Đối tượng (tiếp)
Vídvmtsđốitượngtrongthctếcóthtr
thành đốitượngtrongchươngtrình.
Cáctpdliu:
nMtfilenhâns
nMttừđin
Cáckiudliucangườisdng:
nThigian
ncsphc
nCác đimtrongmtphng
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 19
1. Đối tượng (tiếp)
Vídvmtsđốitượngtrongthctếcóthtr
thành đốitượngtrongchươngtrình.
Cácthànhphntrongtròchơi:
nCácviênbitrongtròchơiLine
ncquânctrongtròchơictướng,cvua
n
Bài ging LTHDT-Phn 2, Chương 10 GV. Ngô Công Thng 20
1. Đối tượng (tiếp)
Mtcâuhiđặtralàkhicác đốitượngthctế
trthànhcác đốitượngtrongchươngtrìnht
cáigìlàdliu,cáigìlàhàmthànhviênca
đốitượng?
nCác đốitượngtrongthctếthườngcótrngthái
khnăng.Trngtháilàcáctínhchtcađốitượng
màcóththay đổi.Khnănglànhnggì đối
tượngcóthlàm.
nKhitrthành đốitượngtrongchươngtrìnhthìd
liuslưutrngtháicòncáchàmthànhviêns
đáp ngvickhnăngcađốitượng.