Tải bản đầy đủ (.doc) (294 trang)

giáo trình lập trình hướng đối tượng full

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (634.82 KB, 294 trang )

CHươNG 1
CáC KHáI NIệM Cơ Sở
của LậP TRìNH HướNG ĐốI TượNG
Ch ng 1 trình b y nh ng v n sau:ươ à ữ ấ đề
Th o lu n v cách ti p c n h ng i t ng,ả ậ ề ế ậ ướ đố ượ
nh ng nh c i m c a l p trình truy n th ngữ ượ đ ể ủ ậ ề ố
v các c i m c a l p trình h ng ià đặ đ ể ủ ậ ướ đố
t ng.ượ
 Các khái ni m c s c a ph ng phápệ ơ ở ủ ươ
h ng i t ng: ướ đố ượ
• i t ng Đố ượ
• L p ớ
• Tr u t ng hóa d li u v bao gói thông tinừ ượ ữ ệ à
• K th aế ừ
• T ng ng b i ươ ứ ộ
• Liên k t ngế độ
• Truy n thông báoề
 Các b c c n thi t thi t k ch ngướ ầ ế để ế ế ươ
trình theo h ng i t ngướ đố ượ
1
 Các u i m c a l p trình h ng iư đ ể ủ ậ ướ đố
t ngượ
 Các ngôn ng h ng i t ngữ ướ đố ượ
 M t s ng d ng c a l p trình h ng iộ ố ứ ụ ủ ậ ướ đố
t ngượ
1.1. Gi i thi uớ ệ
1.1.1. Ti p c n h ng i t ngế ậ ướ đố ượ
Trong th gi i th c, chung quanh chúng ta lế ớ ự à
nh ng i t ng, ó l các th c th có m iữ đố ượ đ à ự ể ố
quan h v i nhau. Ví d các ệ ớ ụ phòng trong m tộ
công ty kinh doanh c xem nh nh ng iđượ ư ữ đố


t ng. Các ượ phòng ây có th l : phòng qu nở đ ể à ả
lý, phòng bán h ng, phòng k toán, phòng ti pà ế ế
th , M i ị ỗ phòng ngo i nh ng cán b m nhi mà ữ ộ đả ệ
nh ng công vi c c th , còn có nh ng d li uữ ệ ụ ể ữ ữ ệ
riêng nh thông tin v nhân viên, doanh s bánư ề ố
h ng, ho c các d li u khác có liên quan n bà ặ ữ ệ đế ộ
ph n ó. Vi c phân chia các phòng ch c n ngậ đ ệ ứ ă
trong công ty s t o i u ki n d d ng cho vi cẽ ạ đ ề ệ ễ à ệ
qu n lý các ho t ng. M i nhân viên trongả ạ độ ỗ
phòng s i u khi n v x lý d li u c a phòngẽ đ ề ể à ử ữ ệ ủ
ó. Ví d phòng k toán ph trách v l ngđ ụ ế ụ ề ươ
2
b ng nhân viên trong công ty. N u b n ang ổ ế ạ đ ở
b ph n ti p th v c n tìm thông tin chi ti t vộ ậ ế ị à ầ ế ề
l ng c a n v mình thì s g i yêu c u vươ ủ đơ ị ẽ ở ầ ề
phòng k toán. V i cách l m n y b n cế ớ à à ạ đượ
m b o l ch có nhân viên c a b ph n kđả ả à ỉ ủ ộ ậ ế
toán c quy n truy c p d li u v cung c pđượ ề ậ ữ ệ à ấ
thông tin cho b n. i u n y c ng cho th y r ng,ạ Đ ề à ũ ấ ằ
không có ng i n o thu c b ph n khác có thườ à ộ ộ ậ ể
truy c p v thay i d li u c a b ph n kậ à đổ ữ ệ ủ ộ ậ ế
toán. Khái ni m nh th v i t ng h u nhệ ư ế ề đố ượ ầ ư
có th c m r ng i v i m i l nh v c trongể đượ ở ộ đố ớ ọ ĩ ự
i s ng xã h i v h n n a - i v i vi c tđờ ố ộ à ơ ữ đố ớ ệ ổ
ch c ch ng trình. M i ng d ng có th cứ ươ ọ ứ ụ ể đượ
nh ngh a nh m t t p các th c th - ho c cácđị ĩ ư ộ ậ ự ể ặ
i t ng, sao cho quá trình tái t o nh ng suyđố ượ ạ ữ
ngh a c a chúng ta l g n sát nh t v th gi iĩ ủ à ầ ấ ề ế ớ
th c.ự
Trong ph n ti p theo chúng ta s xem xétầ ế ẽ

ph ng pháp l p trình truy n th ng t óươ ậ ề ố để ừ đ
th y r ng vì sao chúng ta c n chuy n sangấ ằ ầ ể
ph ng pháp l p trình h ng i t ng.ươ ậ ướ đố ượ
3
1.1.2. Nh ng nh c i m c a l p trình h ngữ ượ đ ể ủ ậ ướ
th t c ủ ụ
Cách ti p c n l p trình truy n th ng l l pế ậ ậ ề ố à ậ
trình h ng th t c (LTHTT). Theo cách ti pướ ủ ụ ế
c n n y thì m t h th ng ph n m m c xemậ à ộ ệ ố ầ ề đượ
nh l dãy các công vi c c n th c hi n nh cư à ệ ầ ự ệ ư đọ
d li u, tính toán, x lý, l p báo cáo v in nữ ệ ử ậ à ấ
k t qu v.v M i công vi c ó s c th cế ả ỗ ệ đ ẽ đượ ự
hi n b i m t s h m nh t nh. Nh v y tr ngệ ở ộ ố à ấ đị ư ậ ọ
tâm c a cách ti p c n n y l các h m ch củ ế ậ à à à ứ
n ng. LTHTT s d ng k thu t phân rã h mă ử ụ ỹ ậ à
ch c n ng theo cách ti p c n trên xu ng (top-ứ ă ế ậ ố
down) t o ra c u trúc phân c p. Các ngôn ngđể ạ ấ ấ ữ
l p trình b c cao nh COBOL, FORTRAN,ậ ậ ư
PASCAL, C, v.v , l nh ng ngôn ng l p trìnhà ữ ữ ậ
h ng th t c. ướ ủ ụ Nh ng nh c i m chính c aữ ượ đ ể ủ
LTHTT l :à
Ch ng trình khó ki m soát v khó kh n trongươ ể à ă
vi c b sung, nâng c p ch ng trình. Ch ngệ ổ ấ ươ ươ
trình c xây d ng theo cách TCHTT th cđượ ự ự
ch t l danh sách các câu l nh m theo ó máyấ à ệ à đ
tính c n th c hi n. Danh sách các l nh óầ ự ệ ệ đ
4
c t ch c th nh t ng nhóm theo n vđượ ổ ứ à ừ đơ ị
c u trúc c a ngôn ng l p trình v c g iấ ủ ữ ậ à đượ ọ
l h m/th t c. Trong ch ng trình có nhi uà à ủ ụ ươ ề

h m/th t c, th ng thì có nhi u th nh ph nà ủ ụ ườ ề à ầ
d li u quan tr ng s c khai báo t ng thữ ệ ọ ẽ đượ ổ ể
(global) các h m/th t c có th truy nh p,để à ủ ụ ể ậ
c v l m thay i giá tr c a bi n t ng th .đọ à à đổ ị ủ ế ổ ể
i u n y s l m cho ch ng trình r t khóĐ ề à ẽ à ươ ấ
ki m soát, nh t l i v i các ch ng trìnhể ấ à đố ớ ươ
l n, ph c t p thì v n c ng tr nên khóớ ứ ạ ấ đề à ở
kh n h n. Khi ta mu n thay i, b sung c uă ơ ố đổ ổ ấ
trúc d li u dùng chung cho m t s h m/thữ ệ ộ ố à ủ
t c thì ph i thay i h u nh t t c cácụ ả đổ ầ ư ấ ả
h m/th t c liên quan n d li u ó. à ủ ụ đế ữ ệ đ
Mô hình c xây d ng theo cách ti p c nđượ ự ế ậ
h ng th t c không mô t c y ,ướ ủ ụ ả đượ đầ đủ
trung th c h th ng trong th c t .ự ệ ố ự ế
Ph ng pháp TCHTT t tr ng tâm v o h mươ đặ ọ à à
l h ng t i ho t ng s không th c sà ướ ớ ạ độ ẽ ự ự
t ng ng v i các th c th trong h th ng c aươ ứ ớ ự ể ệ ố ủ
th gi i th c.ế ớ ự
5
1.1.3. L p trình h ng i t ngậ ướ đố ượ
L p trình h ng i t ng (Object Orientedậ ướ đố ượ
Programming - LTH T) l ph ng pháp l pĐ à ươ ậ
trình l y i t ng l m n n t ng xây d ngấ đố ượ à ề ả để ự
thu t gi i, xây d ng ch ng trình. i t ngậ ả ự ươ Đố ượ
c xây d ng trên c s g n c u trúc d li uđượ ự ơ ở ắ ấ ữ ệ
v i các ph ng th c (các h m/th t c) s thớ ươ ứ à ủ ụ ẽ ể
hi n c úng cách m chúng ta suy ngh , baoệ đượ đ à ĩ
quát v th gi i th c. LTH T cho phép ta k tề ế ớ ự Đ ế
h p nh ng tri th c bao quát v các quá trình v iợ ữ ứ ề ớ
nh ng khái ni m tr u t ng c s d ng trongữ ệ ừ ượ đượ ử ụ

máy tính.
i m c n b n c a ph ng pháp LTH T lĐ ể ă ả ủ ươ Đ à
thi t k ch ng trình xoay quanh d li u c a hế ế ươ ữ ệ ủ ệ
th ng. Ngh a l các thao tác x lý c a h th ngố ĩ à ử ủ ệ ố
c g n li n v i d li u v nh v y khi có sđượ ắ ề ớ ữ ệ à ư ậ ự
thay i c a c u trúc d li u thì ch nh h ngđổ ủ ấ ữ ệ ỉ ả ưở
n m t s ít các ph ng th c x lý liên quan.đế ộ ố ươ ứ ử
LTH T không cho phép d li u chuy n ngĐ ữ ệ ể độ
t do trong h th ng. D li u c g n ch t v iự ệ ố ữ ệ đượ ắ ặ ớ
t ng ph ng th c th nh các vùng riêng m cácừ ươ ứ à à
ph ng th c ó tác ng lên v nó c b o vươ ứ đ độ à đượ ả ệ
6
c m vi c truy nh p tùy ti n t bên ngo i.để ấ ệ ậ ệ ừ à
LTH T cho phép phân tích b i toán th nh t pĐ à à ậ
các th c th c g i l các i t ng v sauự ể đượ ọ à đố ượ à
ó xây d ng các d li u cùng v i các ph ngđ ự ữ ệ ớ ươ
th c xung quanh các i t ng ó. ứ đố ượ đ
Tóm l i LTH T có nh ng c tính ch y uạ Đ ữ đặ ủ ế
nh sau:ư
1. T p trung v o d li u thay cho các ph ngậ à ữ ệ ươ
th c.ứ
2. Ch ng trình c chia th nh các l p iươ đượ à ớ đố
t ng.ượ
3. Các c u trúc d li u c thi t k sao choấ ữ ệ đượ ế ế
c t c các i t ng.đặ ả đượ đố ượ
4. Các ph ng th c xác nh trên các vùng dươ ứ đị ữ
li u c a i t ng c g n v i nhau trên c uệ ủ đố ượ đượ ắ ớ ấ
trúc d li u ó.ữ ệ đ
5. D li u c bao b c, che d u v khôngữ ệ đượ ọ ấ à
cho phép các th nh ph n bên ngo i truy nh p tà ầ à ậ ự

do.
6. Các i t ng trao i v i nhau thông quađố ượ đổ ớ
các ph ng th c.ươ ứ
7
7. D li u v các ph ng th c m i có th dữ ệ à ươ ứ ớ ể ễ
d ng b sung v o i t ng n o ó khi c nà ổ à đố ượ à đ ầ
thi t.ế
8. Ch ng trình c thi t k theo cách ti pươ đượ ế ế ế
c n bottom-up (d i -lên).ậ ướ
1.2. Các khái ni m c b n c a l p trình h ng ệ ơ ả ủ ậ ướ
i t ngđố ượ
Nh ng khái ni m c b n trong LTH T baoữ ệ ơ ả Đ
g m:ồ i t ng; L p; Tr u t ng hóa d li u,Đố ượ ớ ừ ượ ữ ệ
bao gói thông tin; K th a; T ng ng b i; Liênế ừ ươ ứ ộ
k t ng; Truy n thông báo.ế độ ề
1.2.1. i t ngĐố ượ
Trong th gi i th c, khái ni m i t ngế ớ ự ệ đố ượ
c hi u nh l m t th c th , nó có th lđượ ể ư à ộ ự ể ể à
ng i, v t ho c m t b ng d li u c n x lýườ ậ ặ ộ ả ữ ệ ầ ử
trong ch ng trình, Trong LTH T thì iươ Đ đố
t ng l bi n th hi n c a ượ à ế ể ệ ủ l pớ .
1.2.2. L p ớ
L pớ l m t khái ni m m i trong LTH T soà ộ ệ ớ Đ
v i k thu t LTHTT. Nó l m t b n m u mô tớ ỹ ậ à ộ ả ẫ ả
các thông tin c u trúc d li u v các thao tác h pấ ữ ệ à ợ
8
l c a các ph n t d li u. Khi m t ph n t dệ ủ ầ ử ữ ệ ộ ầ ử ữ
li u c khai báo l ph n t c a m t l p thìệ đượ à ầ ử ủ ộ ớ
nó c g i l đượ ọ à i t ngđố ượ . Các h m c nhà đượ đị
ngh a h p l trong m t l p c g i l cácĩ ợ ệ ộ ớ đượ ọ à

ph ng th cươ ứ (method) v chúng l các h m duyà à à
nh t có th x lý d li u c a các i t ng c aấ ể ử ữ ệ ủ đố ượ ủ
l p ó. M i i t ng có riêng cho mình m tớ đ ỗ đố ượ ộ
b n sao các ph n t d li u c a l p. M i l pả ầ ử ữ ệ ủ ớ ỗ ớ
bao g m: danh sách các thu c tính (attribute) vồ ộ à
danh sách các ph ng th c x lý các thu cươ ứ để ử ộ
tính ó. Công th c ph n ánh b n ch t c a kđ ứ ả ả ấ ủ ỹ
thu t LTH T l :ậ Đ à
i t ng = D li u + Ph ngĐố ượ ữ ệ ươ
th cứ
Ch ng h n, chúng ta xét l p HINH_CN baoẳ ạ ớ
g m các thu c tính: (x1,y1) to góc trên bênồ ộ ạ độ
trái, d,r l chi u d i v chi u r ng c a HCN.à ề à à ề ộ ủ
Các ph ng th c nh p s li u cho HCN, h mươ ứ ậ ố ệ à
tính di n tích, chu vi v h m hi n th . L pệ à à ể ị ớ
HINH_CN có th c mô t nh sau:ể đượ ả ư
9

HINH_CN
Thu cộ
tính :
x1,y1
d,r
Ph ngươ
th cứ :
Nh p_slậ
Di n tíchệ
Chu vi
Hi n thể ị
10

Hình 2.2 Mô t l p HINH_CNả ớ
Chú ý: Trong LTH T thì l p l khái ni m t nh,Đ ớ à ệ ĩ
có th nh n bi t ngay t v n b n ch ng trình,ể ậ ế ừ ă ả ươ
ng c l i i t ng l khái ni m ng, nóượ ạ đố ượ à ệ độ
c xác nh trong b nh c a máy tính, n iđượ đị ộ ớ ủ ơ
i t ng chi m m t vùng b nh lúc th c hi nđố ượ ế ộ ộ ớ ự ệ
ch ng trình. i t ng c t o ra x lýươ Đố ượ đượ ạ để ử
thông tin, th c hi n nhi m v c thi t k , sauự ệ ệ ụ đượ ế ế
ó b h y b khi i t ng ó h t vai trò.đ ị ủ ỏ đố ượ đ ế
1.2.3. Tr u t ng hóa d li u v bao gói thôngừ ượ ữ ệ à
tin
Tr u t ng hóaừ ượ l cách bi u di n nh ng cà ể ễ ữ đặ
tính chính v b qua nh ng chi ti t v n v tà ỏ ữ ế ụ ặ
ho c nh ng gi i thích. Khi xây d ng các l p, taặ ữ ả ự ớ
ph i s d ng khái ni m tr u t ng hóa. Ví d taả ử ụ ệ ừ ượ ụ
có th nh ngh a m t l p mô t các iể đị ĩ ộ ớ để ả đố
t ng trong không gian hình h c bao g m cácượ ọ ồ
thu c tính tr u t ng nh l kích th c, hìnhộ ừ ượ ư à ướ
dáng, m u s c v các ph ng th c xác nh trênà ắ à ươ ứ đị
các thu c tính n y. ộ à
11
Vi c óng gói d li u v các ph ng th cệ đ ữ ệ à ươ ứ
v o m t n v c u trúc l p c xem nh m tà ộ đơ ị ấ ớ đượ ư ộ
nguyên t c ắ bao gói thông tin. D li u c tữ ệ đượ ổ
ch c sao cho th gi i bên ngo i (các i t ng ứ ế ớ à đố ượ ở
l p khác) không truy nh p v o, m ch cho phépớ ậ à à ỉ
các ph ng th c trong cùng l p ho c trongươ ứ ớ ặ
nh ng l p có quan h k th a v i nhau m iữ ớ ệ ế ừ ớ ớ
c quy n truy nh p. Chính các ph ng th cđượ ề ậ ươ ứ
c a l p s óng vai trò nh l giao di n gi a dủ ớ ẽ đ ư à ệ ữ ữ

li u c a i t ng v ph n còn l i c a ch ngệ ủ đố ượ à ầ ạ ủ ươ
trình. Nguyên t c bao gói d li u ng n c mắ ữ ệ để ă ấ
s truy nh p tr c ti p trong l p trình c g iự ậ ự ế ậ đượ ọ
l s à ự che gi u thông tinấ .
1.2.4. K th aế ừ
K th aế ừ l quá trình m các i t ng c aà à đố ượ ủ
l p n y c quy n s d ng m t s tính ch tớ à đượ ề ử ụ ộ ố ấ
c a các i t ng c a l p khác. S k th a choủ đố ượ ủ ớ ự ế ừ
phép ta nh ngh a m t l p m i trên c s cácđị ĩ ộ ớ ớ ơ ở
l p ã t n t i. L p m i n y, ngo i nh ng th nhớ đ ồ ạ ớ ớ à à ữ à
ph n c k th a, s có thêm nh ng thu cầ đượ ế ừ ẽ ữ ộ
tính v các h m m i. Nguyên lý k th a h trà à ớ ế ừ ỗ ợ
cho vi c t o ra c u trúc phân c p các l p.ệ ạ ấ ấ ớ
12
1.2.5. T ng ng b iươ ứ ộ
T ng ng b iươ ứ ộ l kh n ng c a m t kháià ả ă ủ ộ
ni m (ch ng h n các phép toán) có th s d ngệ ẳ ạ ể ử ụ
v i nhi u ch c n ng khác nhau. Ví d , phép + cóớ ề ứ ă ụ
th bi u di n cho phép “c ng” các s nguyênể ể ễ ộ ố
(int), s th c (float), s ph c (complex) ho c xâuố ự ố ứ ặ
ký t (string) v.v H nh vi c a phép toán t ngự à ủ ươ
ng b i ph thu c v o ki u d li u m nó sứ ộ ụ ộ à ể ữ ệ à ử
d ng x lý. ụ để ử
T ng ng b i óng vai quan tr ng trong vi cươ ứ ộ đ ọ ệ
t o ra các i t ng có c u trúc bên trong khácạ đố ượ ấ
nhau nh ng cùng dùng chung m t giao di n bênư ộ ệ
ngo i (nh tên g i). à ư ọ
1.2.6. Liên k t ngế độ
Liên k t ngế độ l d ng liên k t các th t c và ạ ế ủ ụ à
h m khi ch ng trình th c hi n l i g i t i cácà ươ ự ệ ờ ọ ớ

h m, th t c ó. Nh v y trong liên k t ng,à ủ ụ đ ư ậ ế độ
n i dung c a o n ch ng trình ng v i thộ ủ đ ạ ươ ứ ớ ủ
t c, h m s không c bi t cho n khi th cụ à ẽ đượ ế đế ự
hi n l i g i t i th t c, h m ó. ệ ờ ọ ớ ủ ụ à đ
13
1.2.7. Truy n thông báoề
Các i t ng g i v nh n thông tin v i nhauđố ượ ử à ậ ớ
gi ng nh con ng i trao i v i nhau. Chínhố ư ườ đổ ớ
nguyên lý trao i thông tin b ng cách truy nđổ ằ ề
thông báo cho phép ta d d ng xây d ng cễ à ự đượ
h th ng mô ph ng g n h n nh ng h th ngệ ố ỏ ầ ơ ữ ệ ố
trong th gi i th c. ế ớ ự Truy n thông báoề cho m tộ
i t ng l yêu c u i t ng th c hi n m tđố ượ à ầ đố ượ ự ệ ộ
vi c gì ó. Cách ng x c a i t ng cệ đ ứ ử ủ đố ượ đượ
mô t bên trong l p thông qua các ph ng th c.ả ớ ươ ứ
Trong ch ng trình, thông báo g i n choươ ử đế
m t i t ng chính l yêu c u th c hi n m tộ đố ượ à ầ ự ệ ộ
công vi c c th , ngh a l s d ng nh ng h mệ ụ ể ĩ à ử ụ ữ à
t ng ng x lý d li u ã c khai báoươ ứ để ử ữ ệ đ đượ
trong i t ng ó. Vì v y, trong thông báo ph iđố ượ đ ậ ả
ch ra c h m c n th c hi n trong i t ngỉ đượ à ầ ự ệ đố ượ
nh n thông báo. Thông báo truy n i c ng ph iậ ề đ ũ ả
xác nh tên i t ng v thông tin truy n i.đị đố ượ à ề đ
Ví d , l p CONGNHAN có th hi n l iụ ớ ể ệ à đố
t ng c th c i di n b i Hoten nh nượ ụ ể đượ đạ ệ ở ậ
c thông báo c n tính l ng thông qua h mđượ ầ ươ à
TINHLUONG ã c xác nh trong l pđ đượ đị ớ
14
CONGNHAN. Thông báo ó s c x lý nhđ ẽ đượ ử ư
sau:

Trong ch ng trình h ng i t ng, m iươ ướ đố ượ ỗ
i t ng ch t n t i trong th i gian nh t nh.đố ượ ỉ ồ ạ ờ ấ đị
i t ng c t o ra khi nó c khai báo vĐố ượ đượ ạ đượ à
s b h y b khi ch ng trình ra kh i mi n xácẽ ị ủ ỏ ươ ỏ ề
nh c a i t ng ó. S trao i thông tin chđị ủ đố ượ đ ự đổ ỉ
có th th c hi n trong th i gian i t ng t nể ự ệ ờ đố ượ ồ
t i.ạ
1.3. Các b c c n thi t thi t k ch ng ướ ầ ế để ế ế ươ
trình theo h ng i t ngướ đố ượ
Ch ng trình theo h ng i t ng bao g mươ ướ đố ượ ồ
m t t p các i t ng v m i quan h gi a cácộ ậ đố ượ à ố ệ ữ
i t ng v i nhau. Vì v y, l p trình trong ngônđố ượ ớ ậ ậ
ng h ng i t ng bao g m các b c sau:ữ ướ đố ượ ồ ướ
1. Xác nh các d ng i t ng (l p) c a b iđị ạ đố ượ ớ ủ à
tóan.
15
CONGNHAN.TINHLUONG (Hoten)
i t ng Đố ượ Thông báo Thông tin
2. Tìm ki m các c tính chung (d li uế đặ ữ ệ
chung) trong các d ng i t ng n y, nh ng gìạ đố ượ à ữ
chúng cùng nhau chia x .ẻ
3. Xác nh l p c s d a trên c s các cđị ớ ơ ở ự ơ ở đặ
tính chung c a các d ng i t ng.ủ ạ đố ượ
4. T l p c s , xây d ng các l p d n xu từ ớ ơ ở ự ớ ẫ ấ
ch a các th nh ph n, nh ng c tính khôngứ à ầ ữ đặ
chung còn l i c a các d ng i t ng. ạ ủ ạ đố ượ Ngo i ra,à
ta còn a ra các l p có quan h v i các l p cđư ớ ệ ớ ớ ơ
s v l p d n xu t.ở à ớ ẫ ấ
1.4. Các u i m c a l p trình h ng i t ngư đ ể ủ ậ ướ đố ượ
Cách ti p c n h ng i t ng gi i quy tế ậ ướ đố ượ ả ế

c nhi u v n t n t i trong quá trình phátđượ ề ấ đề ồ ạ
tri n ph n m m v t o ra c nh ng s n ph mể ầ ề à ạ đượ ữ ả ẩ
ph n m m có ch t l ng cao. ầ ề ấ ượ Nh ng u i mữ ư đ ể
chính c a LTH T l :ủ Đ à
1. Thông qua nguyên lý k th a, có th lo iế ừ ể ạ
b c nh ng o n ch ng trình l p l i trongỏ đượ ữ đ ạ ươ ặ ạ
quá trình mô t các l p v m r ng kh n ng sả ớ à ở ộ ả ă ử
d ng các l p ã c xây d ng.ụ ớ đ đượ ự
2. Ch ng trình c xây d ng t nh ngươ đượ ự ừ ữ
n th ( i t ng) trao i v i nhau nên vi cđơ ể đố ượ đổ ớ ệ
16
thi t k v l p trình s c th c hi n theo quyế ế à ậ ẽ đượ ự ệ
trình nh t nh ch không ph i d a v o kinhấ đị ứ ả ự à
nghi m v k thu t nh tr c. i u n y mệ à ỹ ậ ư ướ Đ ề à đả
b o rút ng n c th i gian xây d ng h th ngả ắ đượ ờ ự ệ ố
v t ng n ng su t lao ng.à ă ă ấ độ
3. Nguyên lý che gi u thông tin giúp ng i l pấ ườ ậ
trình t o ra c nh ng ch ng trình an to nạ đượ ữ ươ à
không b thay b i nh ng o n ch ng trìnhị ở ữ đ ạ ươ
khác.
4. Có th xây d ng c ánh x các iể ự đượ ạ đố
t ng c a b i toán v o i t ng c a ch ngượ ủ à à đố ượ ủ ươ
trình.
5. Cách ti p c n thi t k t tr ng tâm v oế ậ ế ế đặ ọ à
i t ng, giúp chúng ta xây d ng c môđố ượ ự đượ
hình chi ti t v g n v i d ng c i t h n.ế à ầ ớ ạ à đặ ơ
6. Nh ng h th ng h ng i t ng d mữ ệ ố ướ đố ượ ễ ở
r ng, nâng c p th nh nh ng h l n h n.ộ ấ à ữ ệ ớ ơ
7. K thu t truy n thông báo trong vi c traoỹ ậ ề ệ
i thông tin gi a các i t ng giúp cho vi cđổ ữ đố ượ ệ

mô t giao di n v i các h th ng bên ngo i trả ệ ớ ệ ố à ở
nên n gi n h n.đơ ả ơ
17
8. Có th qu n lý c ph c t p c aể ả đượ độ ứ ạ ủ
nh ng s n ph m ph n m m.ữ ả ẩ ầ ề
Không ph i trong h th ng h ng i t ngả ệ ố ướ đố ượ
n o c ng có t t c các tính ch t nêu trên. Khà ũ ấ ả ấ ả
n ng có các tính ch t ó còn ph thu c v o l nhă ấ đ ụ ộ à ĩ
v c ng d ng c a d án tin h c v v o ph ngự ứ ụ ủ ự ọ à à ươ
pháp th c hi n c a ng i phát tri n ph n m m.ự ệ ủ ườ ể ầ ề
1.5. Các ngôn ng h ng i t ngữ ướ đố ượ
L p trình h ng i t ng không l cậ ướ đố ượ à đặ
quy n c a m t ngôn ng n o c bi t. C ngề ủ ộ ữ à đặ ệ ũ
gi ng nh l p trình có c u trúc, nh ng kháiố ư ậ ấ ữ
ni m trong l p trình h ng i t ng có th c iệ ậ ướ đố ượ ể à
t trong nh ng ngôn ng l p trình nh C ho cđặ ữ ữ ậ ư ặ
Pascal, Tuy nhiên, i v i nh ng ch ng trìnhđố ớ ữ ươ
l n thì v n l p trình s tr nên ph c t p.ớ ấ đề ậ ẽ ở ứ ạ
Nh ng ngôn ng c thi t k c bi t, h trữ ữ đượ ế ế đặ ệ ỗ ợ
cho vi c mô t , c i t các khái ni m c aệ ả à đặ ệ ủ
ph ng pháp h ng i t ng c g i chungươ ướ đố ượ đượ ọ
l ngôn ng i t ng. D a v o kh n ng ápà ữ đố ượ ự à ả ă đ
ng các khái ni m v h ng i t ng, ta cóứ ệ ề ướ đố ượ
th chia ra l m hai lo i:ể à ạ
1. Ngôn ng l p trình d a trên i t ngữ ậ ự đố ượ
18
2. Ngôn ng l p trình h ng i t ngữ ậ ướ đố ượ
L p trình d a trên i t ng l ki u l pậ ự đố ượ à ể ậ
trình h tr chính cho vi c bao gói, che gi uỗ ợ ệ ấ
thông tin v nh danh các i t ng. L p trìnhà đị đố ượ ậ

d a trên i t ng có nh ng c tính sau:ự đố ượ ữ đặ
• Bao gói d li uữ ệ
• C ch che gi u v truy nh p d li uơ ế ấ à ậ ữ ệ
• T ng t o l p v xóa b các iự độ ạ ậ à ỏ đố
t ngượ
• Phép toán t i b iả ộ
Ngôn ng h tr cho ki u l p trình trên cữ ỗ ợ ể ậ đượ
g i l ngôn ng l p trình d a trên i t ng.ọ à ữ ậ ự đố ượ
Ngôn ng trong l p n y không h tr cho vi cữ ớ à ỗ ợ ệ
th c hi n k th a v liên k t ng, ch ng h nự ệ ế ừ à ế độ ẳ ạ
Ada l ngôn ng l p trình d a trên i t ng.à ữ ậ ự đố ượ
L p trình h ng i t ng l ki u l p trìnhậ ướ đố ượ à ể ậ
d a trên i t ng v b sung thêm nhi u c uự đố ượ à ổ ề ấ
trúc c i t nh ng quan h v k th a vđể à đặ ữ ệ ề ế ừ à
liên k t ng. Vì v y c tính c a LTH T cóế độ ậ đặ ủ Đ
th vi t m t cách ng n g n nh sau:ể ế ộ ắ ọ ư
Các c tính d a trên i t ng + kđặ ự đố ượ ế
th a + liên k t ng.ừ ế độ
19
Ngôn ng h tr cho nh ng c tính trênữ ỗ ợ ữ đặ
c g i l ngôn ng LTH T, ví d nh C++,đượ ọ à ữ Đ ụ ư
Smalltalk, Object Pascal v.v
Vi c ch n m t ngôn ng c i t ph nệ ọ ộ ữ để à đặ ầ
m m ph thu c nhi u v o các c tính v yêuề ụ ộ ề à đặ à
c u c a b i toán ng d ng, v o kh n ng sầ ủ à ứ ụ à ả ă ử
d ng l i c a nh ng ch ng trình ã có v v oụ ạ ủ ữ ươ đ à à
t ch c c a nhóm tham gia xây d ng ph n m m. ổ ứ ủ ự ầ ề
1.6. M t s ng d ng c a LTH Tộ ố ứ ụ ủ Đ
LTH T ang c ng d ng phát tri nĐ đ đượ ứ ụ để ể
ph n m m trong nhi u l nh v c khác nhau. Trongầ ề ề ĩ ự

s ó, có ng d ng quan tr ng v n i ti ng nh tố đ ứ ụ ọ à ổ ế ấ
hi n nay l h i u h nh Windows c a hãngệ à ệ đ ề à ủ
Microsoft ã c phát tri n d a trên k thu tđ đượ ể ự ỹ ậ
LTH T. M t s nh ng l nh v c ng d ng chínhĐ ộ ố ữ ĩ ự ứ ụ
c a k thu t LTH T bao g m:ủ ỹ ậ Đ ồ
+ Nh ng h th ng l m vi c theo th i gianữ ệ ố à ệ ờ
th c.ự
+ Trong l nh v c mô hình hóa ho c mô ph ngĩ ự ặ ỏ
các quá trình
+ Các c s d li u h ng i t ng.ơ ở ữ ệ ướ đố ượ
+ Nh ng h siêu v n b n, multimediaữ ệ ă ả
20
+ L nh v c trí tu nhân t o v các h chuyênĩ ự ệ ạ à ệ
gia.
+ L p trình song song v m ng n -ron.ậ à ạ ơ
+ Nh ng h t ng hóa v n phòng v trữ ệ ự độ ă à ợ
giúp quy t nh.ế đị

21
Chương 2
các mở rộng của ngôn ngữ C++
Ch ng 2 trình b y nh ng v n sau ây: ươ à ữ ấ đề đ
 Gi i thi u chung v ngôn ng C++ớ ệ ề ữ
 M t s m r ng c a ngôn ng C++ so v iộ ố ở ộ ủ ữ ớ
ngôn ng C ữ
 Các c tính c a C++ h tr l p trìnhđặ ủ ỗ ợ ậ
h ng i t ngướ đố ượ
 V o ra trong C++à
 C p phát v gi i phóng b nhấ à ả ộ ớ
 Bi n tham chi u, h ng tham chi uế ế ằ ế

 Truy n tham s cho h m theo tham chi uề ố à ế
 H m tr v giá tr tham chi uà ả ề ị ế
 H m v i tham s có giá tr m c nhà ớ ố ị ặ đị
 Các h m n i tuy n (inline)à ộ ế
 H m t i b ià ả ộ
2.1. Gi i thi u chung v C++ớ ệ ề
C++ l ngôn ng l p trình h ng i t ngà ữ ậ ướ đố ượ
v l s m r ng c a ngôn ng C. Vì v y m ià à ự ở ộ ủ ữ ậ ọ
khái ni m trong C u dùng c trong C++.ệ đề đượ
Ph n l n các ch ng trình C u có th ch yầ ớ ươ đề ể ạ
22
c trong C++. Trong ch ng n y ch t p trungđượ ươ à ỉ ậ
gi i thi u nh ng khái ni m, c tính m i c aớ ệ ữ ệ đặ ớ ủ
C++ h tr cho l p trình h ng i t ng. M tỗ ợ ậ ướ đố ượ ộ
s ki n th c có trong C++ nh ng ã có trongố ế ứ ư đ
ngôn ng C s không c trình b y l i ây.ữ ẽ đượ à ạ ở đ
2.2. M t s m r ng c a C++ so v i Cộ ố ở ộ ủ ớ
2.2.1. t l i chú thích Đặ ờ
Ngo i ki u chú thích trong C b ng /* */ ,à ể ằ
C++ a thêm m t ki u chú thích th hai, ó lđư ộ ể ứ đ à
chú thích b t u b ng //. Ki u chú thích /* */ắ đầ ằ ể
c dùng cho các kh i chú thích l n g mđượ ố ớ ồ
nhi u dòng, còn ki u // c dùng cho các chúề ể đượ
thích trên m t dòng. Ch ng trình d ch s bộ ươ ị ẽ ỏ
qua t t c các chú thích trong ch ng trình.ấ ả ươ
Ví d : /* ây l ụ Đ à
câu chú thích trên nhi u dòng */ề
// ây l chú thích trên m t dòngĐ à ộ
2.2.2. Khai báo bi nế
Trong C t t c các câu l nh khai báo bi n,ấ ả ệ ế

m ng c c b ph i t t i u kh i. Vì v y vả ụ ộ ả đặ ạ đầ ố ậ ị
trí khai báo v v trí s d ng c a bi n có th à ị ử ụ ủ ế ể ở
cách khá xa nhau, i u n y gây khó kh n trongđ ề à ă
23
vi c ki m soát ch ng trình. C++ ã kh c ph cệ ể ươ đ ắ ụ
nh c i m n y b ng cách cho phép các l nhượ đ ể à ằ ệ
khai báo bi n có th t b t k ch n o trongế ể đặ ấ ỳ ỗ à
ch ng trình tr c khi các bi n c s d ng.ươ ướ ế đượ ử ụ
Ph m vi ho t ng c a các bi n ki u n y lạ ạ độ ủ ế ể à à
kh i trong ó bi n c khai báo. ố đ ế đượ
Ví d 2.1ụ Ch ng trình sau ây nh p m t dãyươ đ ậ ộ
s th c r i s p x p theo th t t ng d n:ố ự ồ ắ ế ứ ự ă ầ
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
void main()
{
int n;
printf("\n So phan tu cua day
N=");
scanf("%d",&n);
float
*x=(float*)malloc((n+1)*sizeof(flo
at));
for (int i=0;i<n;i++)
{
24
printf("\n X[%d]=",i);
scanf("%f",x+i);
}

for(i=0;i<n-1;++i)
for (int j=i+1;j<n;++j)
if (x[i]>x[j])
{
float tg=x[i];
x[i]=x[j];
x[j]=tg;
}
printf("\n Day sau khi sap
xep\n");
for (i=0;i<n;++i)
printf("%0.2f ",x[i]);
getch();
}
2.2.3. Phép chuy n ki u b t bu cể ể ắ ộ
Ngo i phép chuy n ki u b t bu c c vi tà ể ể ắ ộ đượ ế
trong C theo cú pháp:
(ki u) bi u th cể ể ứ
25

×