You are on page 1of 26

Lp trnh hng i tng

Cc c tnh ca phn mm Cc phng php lp trnh Tru tng ha d liu Lp trnh hng i tng Mt s khi nim trong lp trnh OOP: Tnh ng gi Tnh k tha Tnh a hnh

1
Nguyn Mnh Hng

Cc c tnh ca phn mm
Kch thc ngy cng ln Ngi dng ngy cng i hi nhiu chc nng, c bit l chc nng thng minh ca phn mm Phn mm lun cn c sa i, nng cp.

2
Nguyn Mnh Hng

Yu cu v gii php pht trin phn mm


Yu cu: Cn kim sot c chi ph Chi ph pht trin Chi ph bo tr Gii php: Chnh l s dng li m ngun Gim chi ph v thi gian pht trin Nng cao cht lng

3
Nguyn Mnh Hng

Yu cu i vi m ngun
c th d dng s dng li th m ngun phi tha mn cc yu cu sau: D hiu Chnh xc C giao din r rng Khng yu cu thay i khi s dng trong chng trnh mi

4
Nguyn Mnh Hng

Cc phng php lp trnh


Lp trnh khng c cu trc Lp trnh c cu trc (lp trnh th tc) Lp trnh chc nng Lp trnh logic Lp trnh hng i tng

5
Nguyn Mnh Hng

Lp trnh khng c cu trc (non-structured programming)


L phng php xut hin u tin cc ngn ng nh Assembly, Basic s dng cc bin tng th thng lm dng lnh GOTO Cc nhc im kh hiu, kh bo tr, hu nh khng th s dng li cht lng km chi ph cao khng th pht trin cc ng dng ln
6
Nguyn Mnh Hng

Vo cui cc nm trong 1960 v 1970, mt s ngn ng lp trnh c cu trc ra i. V bn cht, chng trnh khi c chia nh thnh cc chng trnh con (cn gi l hm hay th tc) thc hin cc cng vic nh trong qu trnh ln hn, phc tp hn. Mt khi nim ln c a ra trong lp trnh c cu trc l s tru tng ha theo chc nng (Functional Abstraction). S tru tng ha chnh l quan st mt s vic m khng cn xem xt n cc chi tit bn trong ca n. Trong mt chng trnh c cu trc, chng ta ch cn bit mt hm cho c th thc hin c mt cng g vic c th m khng cn quan tm n hm thc hin cng vic nh th no. iu ny gi l s tru tng ha theo chc nng (Functional abstraction) v l nn tng ca lp trnh c 7 cu trc.
Nguyn Mnh Hng

Lp trnh c cu trc (structured/procedural programming)

Structured/procedural programming
Start by writing the main program Use selective and iterative control structures Call procedures P1, ...,Pn Implement P1, ... Pn.

8
Nguyn Mnh Hng

Lp trnh c cu trc/lp trnh th tc


S dng cc lnh c cu trc: for, do while, if then else... Cc ngn ng: Pascal, C, ... Chng trnh l tp cc hm/th tc u im: chng trnh c cc b ha, do d hiu, d bo tr hn d dng to ra cc th vin phn mm

9
Nguyn Mnh Hng

Lp trnh c cu trc/lp trnh th tc


Nhc im d liu v m x l l tch ri ngi lp trnh phi bit cu trc d liu (vn ny mt thi gian di c coi l hin nhin) khi thay i cu trc d liu th m x l (thut ton) phi thay i theo kh m bo tnh ng n ca d liu khng t ng khi to hay gii phng d liu ng

10
Nguyn Mnh Hng

Ti sao phi thay i cu trc d liu?


Cu trc d liu l m hnh ca bi ton cn gii quyt: Do thiu kin thc v bi ton, v min ng dng..., khng phi lc no cng to c cu trc d liu hon thin ngay t u. To ra mt cu trc d liu hp l lun l vn au u ca ngi lp trnh. Bn thn bi ton cng khng bt bin: Cn phi thay i cu trc d liu khi cc yu cu thay i.

11
Nguyn Mnh Hng

Cc vn khi xy dng phn mm


Thay i cu trc: dn n vic sa li m chng trnh (thut ton) tng ng v lm chi ph pht trin tng cao. khng ti s dng c cc m x l ng vi cu trc d liu c. m bo tnh ng n ca d liu: mt trong nhng nguyn nhn chnh gy ra li phn mm l gn cc d liu khng hp l cn phi kim tra tnh ng n ca d liu mi khi thay i gi tr
12
Nguyn Mnh Hng

V d: vn v tnh ng n ca d liu
struct MyDate { public int year, month, day; } MyDate d; d.day = 32; // invalid day d.day = 31; d.month = 2; // how to check d.day = d.day + 1; //

13
Nguyn Mnh Hng

Gii php
Bng cch: Che du d liu (che du cu trc) Truy cp d liu thng qua thuc tnh => Ta c th gii quyt c tnh ng n ca d liu v m bo c s c lp i vi cu trc class MyDate { private int year, mon, day; public int GetDay() {...} public boolean SetDay(int) {...} ... }
14
Nguyn Mnh Hng

Gii php
MyDate d = new MyDate(); ... d.day = 32; // compile error khng truy cp c d.SetDay(31);//Ktra d liu c thc hin trong SetDay d.SetMonth(2); // should return False Vi cch dng cc thuc tnh truy cp n cc trng d liu ca cu trc, ta c th kim tra c tnh ng n ca d liu khi gn v m bo tnh c lp vi cu trc ca cc chng trnh dn xut.

15
Nguyn Mnh Hng

Tru tng ha d liu


Tru tng ha d liu (data abstraction) l vic xc nh cc thuc tnh v cc hnh ng ca mt loi thc th lin quan n ng dng ang pht trin. S tru tng ha d liu gip chng ta khng phi bn tm v cc chi tit khng cn thit ca loi i tng.

16
Nguyn Mnh Hng

Lp trnh OOP
Khi nim hng i tng c xy dng trn nn tng ca khi nim lp trnh c cu trc v s tru tng ha d liu. S thay i cn bn th hin ch, mt chng trnh hng i tng c thit k xoay quanh d liu m chng ta c th lm vic trn , hn l theo bn thn chc nng ca chng trnh. Lp trnh hng i tng lin kt cu trc d liu vi cc thao tc trn n theo cch m chng ta thng ngh v th gii xung quanh mnh.

17
Nguyn Mnh Hng

Lp trnh OOP
V d: Chng ta bit rng mt chic xe c cc bnh xe, di chuyn c v c th i hng ca n bng cch quo tay li. Tng t nh th, mt ci cy l mt loi thc vt c thn g v l. Trong lp trnh i tng: xe hi, cy ci, ng vt, c gi l cc lp (Class).

18
Nguyn Mnh Hng

Lp trnh OOP
Mt lp l mt bn mu m t cc thng tin v loi i tng v cc thao tc hp l ca loi i tng . Ni cch khc, Lp (class) l s kt hp gia cc thuc tnh (trng thi ca i tng) v cc phng thc (hnh vi ca i tng). Khi mt bin c khai bo thuc kiu ca mt lp th n c gi l mt i tng (Object) ca lp . Cc hm c nh ngha trong mt lp c gi l cc phng thc (Method) .

Mt thc th (Instance) l mt vt th c thc bn trong b nh, thc cht l mt i tng c cp pht vng nh.

19
Nguyn Mnh Hng

H thng hng i tng


Bao gm mt tp cc i tng, mi i tng chu trch nhim mt cng vic Cc i tng tng tc thng qua trao i thng ip (message)

20
Nguyn Mnh Hng

Tnh ng gi (Encapsulation)
S ng gi l c ch rng buc d liu v thao tc trn d liu thnh mt th thng nht, trnh c cc tc ng bt ng t bn ngoi. Th thng nht ny gi l i tng.

Trong mt i tng, d liu hay thao tc hay c hai c th l ring (private) hoc chung (public) ca i tng .
C ch ng gi l phng thc tt thc hin c ch che du thng tin so vi cc ngn ng lp trnh cu trc. Che du thng tin: thao tc vi d liu thng qua cc giao din xc nh (thuc tnh)

21
Nguyn Mnh Hng

Tnh k tha (Inheritance)


Chng ta c th xy dng cc lp mi t cc lp c thng qua s k tha. Mt lp mi cn gi l lp dn xut (derived class), c th tha hng d liu v cc phng thc ca lp c s (base class) ban u.

22
Nguyn Mnh Hng

Tnh a hnh (Polymorphism)


Khi mt lp dn xut c to ra, n c th thay i cch thc hin mt s phng thc no m n tha hng t lp c s ca n. Mt phng thc khi c gi t mt i tng ca lp c s, s dng phng thc nh ngha trong lp c s. Nu mt lp dn xut nh ngha li mt phng thc tha hng t lp c s ca n th mt phng thc c cng tn vi phng thc ny, khi c gi t mt i tng ca lp dn xut s gi phng thc nh ngha trong lp dn xut.

23
Nguyn Mnh Hng

Tnh a hnh (Polymorphism)

24
Nguyn Mnh Hng

Cc u im ca lp trnh HT
Tng nng sut lp trnh (nng sut pht trin) Nng cao cht lng phn mm Tng tnh hiu c ca phn mm Tng vng i ca phn mm

25
Nguyn Mnh Hng

Lch s cc ngn ng lp trnh

26
Nguyn Mnh Hng

You might also like