Professional Documents
Culture Documents
LTHT
Chng 12 K THA
Chng 12 - 1
Khoa CNTT
LTHT
0. MC TIU
Hiu c cc loi quan h? Hiu c k tha trong lp trnh hng i tng l g? Hiu c khi nim cy k tha. Hiu c khi nim s lp.
Chng 12 - 2
Khoa CNTT
LTHT
1.QUAN H
Ngi ta chia cc quan h thnh nhng loi nh sau:
Quan h mt mt (1-1) Quan h mt nhiu (1-n) Quan h nhiu nhiu (m-n) Quan h t bit ha, tng qut ha.
Chng 12 - 3
Khoa CNTT
LTHT
Khi nim: Hai lp i tng c gi l quan h mt-mt vi nhau khi mt i tng thuc lp ny quan h vi mt i tng thuc lp kia v mt i tng thuc lp kia quan h duy nht vi mt i tng thuc lp ny. Hnh v
Quan H
Trong hnh v trn ta ni: mt i tng thuc lp A quan h vi mt i tng thuc lp B v mt i tng lp B quan h duy nht vi mt i tng thuc lp A.
Chng 12 - 4
Khoa CNTT
LTHT
V d minh ha
LOPHOC Ch nhim GIAOVIEN
VO
Hn nhn
CHONG
Chng 12 - 5
Khoa CNTT
LTHT
Khi nim: Hai lp i tng c gi l quan h mt-nhiu vi nhau khi mt i tng thuc lp ny quan h vi nhiu i tng thuc lp kia v mt i tng lp kia quan h duy nht vi mt i tng thuc lp ny. Hnh v
Quan H
Trong hnh v trn ta ni: mt i tng thuc lp A quan h vi nhiu i tng thuc lp B v mt i tng lp B quan h duy nht vi mt i tng thuc lp A.
Chng 12 - 6
Khoa CNTT
LTHT
V d minh ha:
LOPHOC c HOCSINH
CHA
Huyt thng
CON
HOASI
Sng tc
TACPHAM
Chng 12 - 7
Khoa CNTT
LTHT
V d minh ha:
Chng 12 - 8
Khoa CNTT
LTHT
Khi nim: hai lp i tng c gi l quan h nhiu-nhiu vi nhau khi mt i tng thuc lp ny quan h vi nhiu i tng thuc lp kia v mt i tng lp kia cng c quan h vi nhiu i tng thuc lp ny. Hnh v
Quan H
Trong hnh v trn ta ni: mt i tng thuc lp A quan h vi nhiu i tng thuc lp B v mt i tng lp B cng c quan h vi nhiu i tng thuc lp A.
Chng 12 - 9
Khoa CNTT
LTHT
V d minh ha:
NAM yu N
BACSI
Khm bnh
BENHNHAN
Chng 12 - 10
Khoa CNTT
LTHT
V d minh ha:
Chng 12 - 11
Khoa CNTT
LTHT
Khi nim: hai lp i tng c gi l quan h c bit ha-tng qut ha vi nhau khi, lp i tng ny l trng hp c bit ca lp i tng kia v lp i tng kia l trng hp tng qut ca lp i tng ny. Hnh v
A B
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 12
Khoa CNTT
LTHT
Hnh v
A B
Trong hnh v trn ta ni: lp i tng B l trng hp c bit ca lp i tng A v lp i tng A l trng hp tng qut ca lp i tng B.
Chng 12 - 13
Khoa CNTT
LTHT
V d 1:
TAMGIAC
TAMGIACCAN
Chng 12 - 14
Khoa CNTT
LTHT
V d 2:
DONGVAT
NGUOI
HEO
Chng 12 - 15
Khoa CNTT
LTHT
2. CY K THA
Khi nim: Cy k tha l mt cy a nhnh th hin mi quan h c bit ha-tng qut ha gia cc lp trong h thng, chng trnh. V d: Hy v cy k tha cho cc lp i tng sau:
+ + + + +
Lp XELAM Lp XEBABANH
Lp XEXICHLO
Chng 12 - 16
Khoa CNTT
LTHT
2. CY K THA (tip)
Chng 12 - 17
Khoa CNTT
LTHT
3. S LP
Khi nim: S lp l s th hin tt c cc mi quan h gia cc lp trong h thng, chng trnh. V d minh ha: Hy v s lp cho cc lp i tng sau:
+ + + + +
Lp GIAOVIEN Lp HOCSINH Lp LOPHOC Lp MONHOC Lp NHANVIEN: tt c nhng ngi lm vic trong trng. Lp CNV: l nhng ngi lm vic trong nh trng nhng ko trc tip ng lp. V d: Bo v, lao cng, bo mu,
Chng 12 - 18
Khoa CNTT
LTHT
3. S LP
Chng 12 - 19
Khoa CNTT
LTHT
Th gii thc Lp trnh hng i tng vi C++ Phm vi truy xut T kho dn xut
Chng 12 - 20
Khoa CNTT
LTHT
A B
Trong hnh v trn ta ni A v B c quan h c bit ho, tng qut ho vi nhau. Trong B l trng hp t bit ca A, v A l trng hp tng qut ca B.
Chng 12 - 21
Khoa CNTT
LTHT
Khoa CNTT
LTHT
Mt thuc tnh hay mt phng thc khi c khai bo trong mt lp ta c th khai bo trong 3 phm vi khc nhau: private, public hoc protected. V mt nguyn tc cho ti thi im ny th mt thuc tnh hay mt phng thc khi c khai bo trong phm vi private hay protected th tng ng nhau. Ngha l, thuc tnh v phng thc c khai bo trong hai phm vi ny ch c php truy xut bn trong lp m thi v khng c quyn truy xut t bn ngoi lp.
Chng 12 - 23
Khoa CNTT
LTHT
Khoa CNTT
LTHT
Khoa CNTT
LTHT
main()
Chng 12 - 26
Khoa CNTT
LTHT
Khoa CNTT
LTHT
Trong ngn ng C++ c ba loi t kha dn xut l: private, protected v public. Thng thng trong thc t ngi ta hay s dng t kha dn xut public l nhiu nht.
Chng 12 - 28
Khoa CNTT
LTHT
V d 01: Khai bo lp tam gic v lp tam gic cn. class CTamGiac { ... }; class CTamGiacCan:public CTamGiac { ... };
TAMGIACCAN
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 29
1. 2. 3. 4. 5.
6. 7. 8.
TAMGIAC
Khoa CNTT
LTHT
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 31
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 32
Khoa CNTT
LTHT
Phm vi lp c s Private
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 33
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 34
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 35
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 36
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 37
Khoa CNTT
LTHT
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 38
Khoa CNTT
LTHT
||
||
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 39
Khoa CNTT
LTHT
|| private
||
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 40
Khoa CNTT
LTHT
|| private
|| protected
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 41
Khoa CNTT
LTHT
|| private private
|| protected
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 42
Khoa CNTT
LTHT
|| private private
|| protected public
Ghi ch: T kho dn xut c ba loi l private, protected, public. Cc sinh vin t tm hiu thm t kho dn xut protected trong ti liu.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 43
Khoa CNTT
LTHT
Cc thuc tnh v phng thc c khai bo trong phm vi private ca lp c s th s khng c hiu lp dn xut. Cc thuc tnh v phng thc c khai bo trong phm vi protected ca lp c s nu c dn xut bng t kha private th cc thuc tnh v phng thc s c hiu lp dn xut nh l thnh phn private ca lp dn xut. Cc thuc tnh v phng thc c khai bo trong phm vi protected ca lp c s nu c dn xut bng t kha public th cc thuc tnh v phng thc s c hiu lp dn xu t nh lQuc thnh phn protected GV. Nguy n Sn Hong Chng 12 - 44 ThS. Nguy n d T n Tr nt Minh ca lp n xu . Khang
Khoa CNTT
LTHT
Cc thuc tnh v phng thc c khai bo trong phm vi public ca lp c s nu c dn xut bng t kha private th cc thuc tnh v phng thc s c hiu lp dn xut nh l thnh phn private ca lp dn xut. Cc thuc tnh v phng thc c khai bo trong phm vi public ca lp c s nu c dn xut bng t kha public th cc thuc tnh v phng thc s c hiu lp dn xut nh l thnh phn public ca lp dn xut.
Chng 12 - 45
Khoa CNTT
LTHT
Phm vi lp c s Private Protected Public (1) (3) (5) (2) (4) (6)
Chng 12 - 46
Khoa CNTT
LTHT
Chng 12 - 47
Khoa CNTT
LTHT
Chng 12 - 48
Khoa CNTT
LTHT
Chng 12 - 49
Khoa CNTT
LTHT
Qui tc v cy k tha chi tit: + Cc thuc tnh v phng thc thuc phm vi private c v vi mu xanh bn tri. + Cc thuc tnh v phng thc thuc phm vi protected c v vi mu xanh bn phi. + Cc thuc tnh v phng thc thuc phm vi public c v vi mu bn phi. + Cc thuc tnh v phng thc c c do k tha c v bng nt t khng lin tc. + Cc thuc tnh v phng thc ca chnh bn thn lp c v bng nt lin lin tc.
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang Chng 12 - 50
Khoa CNTT
LTHT
A
public
B
GV. Nguy n Sn Hong Quc ThS. Nguyn Tn Trn Minh Khang
Chng 12 - 51
Khoa CNTT
LTHT
x uv()
Chng 12 - 52
Khoa CNTT
LTHT
V d dn nhp 01: Hy cho bit trong chng trnh di y cu lnh no ng cu lnh no sai:
11. class A 12.{ 13. ... 14.}; 15.class B:public 16.{ 17. ... 18.}; 19.void main() 20.{ 21. A a; 22. B b; 23. a = b; 24. b = a; 25.}
Chng 12 - 53
Khoa CNTT
LTHT
V d dn nhp 02: Hy cho bit on chng trnh di y cu lnh no ng, cu lnh no sai: class A { ... };
9. void main() 10.{ 11. A *a; 12. B *b; 13. A x; 14. B y; 15. a = &x; 16. 17. 18. 19.}
1. 2. 3. 4. 5. 6. 7. 8.
Khoa CNTT
LTHT
Ton t gn trong k tha c thc hin theo nguyn tc: trng hp t bit c th c gn cho trng hp tng qut, v trng hp tng qut th khng th gn cho trng hp t bit c. Qui tc trn p dng cho tt c cc ngn ng h tr lp trnh hng i tng nh C++, Java, VB.NET, C#, Python,...
Chng 12 - 55
Khoa CNTT
LTHT
p dng qui tc trn cho ngn ng lp trnh hng i tng C++ ta c th ni nh sau: mt i tng thuc lp dn xut c th c gn cho mt i tng thuc lp c s. iu ngc li l sai, ngha l mt i tng thuc lp c s khng c quyn gn cho mt i tng thuc lp dn xut.
Chng 12 - 56
Khoa CNTT
LTHT
V d dn nhp 01: Hy cho bit trong chng trnh di y cu lnh no ng cu lnh no sai:
11. class A 12.{ 13. ... 14.}; 15.class B:public 16.{ 17. ... 18.}; 19.void main() 20.{ 21. A a; 22. B b; 23. a = b; 24. b = a; 25.}
Chng 12 - 57
Khoa CNTT
LTHT
M rng qui tc trn cho con tr i tng ta c th ni nh sau: mt con tr i tng thuc lp c s c th gi a ch ca mt i tng thuc lp dn xut. Ngc lai, mt con tr i tng thuc lp dn xut khng th gi a ch ca mt i tng thuc lp c s.
Chng 12 - 58
Khoa CNTT
LTHT