Top Banner

of 39

Chuong 02 - Tong Quan Ve Lap Trinh Huong Doi Tuong

Mar 01, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • TNG QUAN V LP TRNH HNG I

    TNG

    ThS. Trn Anh Dng

  • Ni dung

    14/09/2014 Lp trnh hng i tng 2

    Gii thiu 1

    Cc phng php lp trnh 2

    Mt s khi nim c bn 3

    Cc c im quan trng ca OOP 4

    Mt s thut ng OOP 5 5

  • Gii thiu

    Mc tiu ca k s lp trnh:

    To ra sn phm tt mt cch c hiu qu

    Nm bt c cng ngh

    14/09/2014 Lp trnh hng i tng 3

  • Gii thiu

    phc tp v ln ngy cng cao:

    Mt s h Unix cha khong 4M dng lnh

    MS Windows cha hng chc triu dng lnh

    Ngi dng ngy cng i hi nhiu chc

    nng, c bit l chc nng thng minh

    Phn mm lun cn c sa i

    14/09/2014 Lp trnh hng i tng 4

  • Gii php

    Cn kim sot chi ph:

    Chi ph pht trin

    Chi ph bo tr

    Gii php chnh l s dng li (ti s

    dng):

    Gim chi ph v thi gian pht trin

    Nng cao cht lng

    14/09/2014 Lp trnh hng i tng 5

  • Gii php

    s dng li (m ngun):

    Cn d hiu

    c coi l chnh xc

    C giao din r rng

    Tnh module ha

    Khng yu cu thay i khi s dng trong

    chng trnh mi

    14/09/2014 Lp trnh hng i tng 6

  • Mc tiu ca vic thit k mt phn mm

    Tnh ti s dng (reusability): thit k cc

    thnh phn c th c s dng trong

    nhiu phn mm khc nhau

    Tnh m rng (extensibility)

    Tnh mm do (flexibility):

    C th d dng thay i khi thm mi d liu

    hay tnh nng.

    Cc thay i khng lm nh hng nhiu n

    ton b h thng

    14/09/2014 Lp trnh hng i tng 7

  • Cc phng php lp trnh

    S tin ha ca cc phng php lp

    trnh:

    Lp trnh khng c cu trc

    Lp trnh c cu trc (lp trnh th tc), hng

    chc nng

    Lp trnh hng i tng

    14/09/2014 Lp trnh hng i tng 8

  • Lp trnh khng c cu trc

    L phng php xut hin u tin:

    Cc ngn ng nh Assembly, Basic

    S dng cc bin ton cc

    Lm dng lnh GOTO

    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

    14/09/2014 Lp trnh hng i tng 9

  • Lp trnh khng c cu trc

    V d:

    10 k =1

    20 gosub 100

    30 if y > 120 goto 60

    40 k = k+1

    50 goto 20

    60 print k, y

    70 stop

    100 y = 3*k*k + 7*k-3

    110 return

    14/09/2014 Lp trnh hng i tng 10

  • Lp trnh c cu trc

    T chc thnh cc chng trnh con (hay cc

    module)

    Mi chng trnh con m nhn x l mt cng

    vic nh hay mt nhm cng vic trong ton b

    h thng.

    Mi chng trnh con ny li c th chia nh

    thnh cc chng trnh con nh hn.

    14/09/2014 Lp trnh hng i tng 11

    Chng trnh = Cu trc d liu + Gii thut

  • Lp trnh c cu trc

    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 module ha, do d hiu, d bo

    tr hn

    D dng to ra cc th vin phn mm

    14/09/2014 Lp trnh hng i tng 12

  • Lp trnh c cu trc

    V d:

    struct Date {

    int year, mon, day;

    };

    //...

    void print_date(Date d) {

    printf(%d / %d / %d\n, d.day, d.mon, d.year);

    }

    14/09/2014 Lp trnh hng i tng 13

  • Lp trnh c cu trc

    Nhc im?

    D liu v m x l l tch ri

    Ngi lp trnh phi bit cu trc d liu

    Khi thay i cu trc d liu 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

    Khng m t c y , trung thc h thng trong

    thc t

    14/09/2014 Lp trnh hng i tng 14

  • Lp trnh hng i tng

    Trong th gii thc, chung quanh chng ta l

    nhng i tng, l cc thc th c mi quan

    h vi nhau.

    V d: Cc phng trong mt cng ty

    Lp trnh hng i tng (Object Oriented

    Programming LTHT)?

    L phng php lp trnh ly i tng lm nn tng

    xy dng thut gii, xy dng chng trnh.

    14/09/2014 Lp trnh hng i tng 15

  • Lp trnh Hng i tng

    14/09/2014 Lp trnh hng i tng 16

    Lp trnh hng i tng l phng php

    lp trnh da trn kin trc lp (class)

    v i tng (object)

  • Mt s khi nim c bn

    i tng (object)

    Lp (class)

    14/09/2014 Lp trnh hng i tng 17

  • Mt s khi nim c bn

    i tng (object):

    Trong th gii thc, i tng c hiu nh l mt

    thc th: ngi, vt hoc mt bng d liu

    Mi i tng s tn ti trong mt h thng v c

    ngha nht nh trong h thng.

    i tng gip biu din tt hn th gii thc trn

    my tnh

    Mi i tng bao gm 2 thnh phn: thuc tnh v

    thao tc (hnh ng).

    14/09/2014 Lp trnh hng i tng 18

  • Mt s khi nim c bn

    V d i tng: mt ngi

    Mt ngi c cc thuc tnh: tn, tui, a ch,

    mu mt

    Cc hnh ng: i, ni, th

    14/09/2014 Lp trnh hng i tng 19

    Mt i tng l 1 thc th bao gm thuc tnh v hnh ng

  • Mt s khi nim c bn

    Lp (class):

    Cc i tng c cc c tnh tng t nhau c

    gom chung thnh lp i tng. Mt lp i tng

    c trng bng cc thuc tnh, v cc hnh ng

    (hnh vi, thao tc).

    Thuc tnh (Attribute): Mt thnh phn ca i tng,

    c gi tr nht nh cho mi i tng ti mi thi im

    trong h thng.

    Thao tc (Operation): Th hin hnh vi ca mt i

    tng tc ng qua li vi cc i tng khc hoc

    vi chnh n. 14/09/2014 Lp trnh hng i tng 20

  • Mt s khi nim c bn

    Mi thao tc trn mt lp i tng c th tng

    ng vi mt ci t c th khc nhau. Mt ci t

    nh vy c gi l mt phng thc (method).

    Cng mt phng thc c th c p dng cho

    nhiu lp i tng khc nhau, mt thao tc nh

    vy c gi l c tnh a hnh (polymorphism).

    Mt i tng c th thuc mt lp c gi l

    mt th hin (instance) ca lp .

    14/09/2014 Lp trnh hng i tng 21

  • Interacting Objects

    14/09/2014 Lp trnh hng i tng 22

    Class A Class B

    Private:

    data members

    Private:

    data members

    Member methods Member methods

    Constructor

    Other

    public methods

    Public:

    Destructor

    Constructor

    Other

    public methods

    Public:

    DestructorMessage passing

    Private:

    methods

    Private:

    methods

  • S i tng

    Ta dng s i tng m t cc lp i

    tng. S i tng bao gm s lp v

    s th hin.

    S lp m t cc lp i tng trong h

    thng, mt lp i tng c din t bng

    mt hnh ch nht gm 3 phn:

    Phn u ch tn lp

    Phn 2 m t cc thuc tnh

    Phn 3 m t cc thao tc ca cc i tng trong lp

    14/09/2014 Lp trnh hng i tng 23

  • S lp v s th hin

    14/09/2014 Lp trnh hng i tng 24

    Sinh vien

    Ho ten

    Nam sinh

    Ma so

    iem TB

    i hoc

    i thi

    Phan loai

    (Sinh vien)

    Nguyen Van A

    1984

    0610234T

    9.2

    Ten lp

    Thuoc tnh

    Thao tac

    S o lp S o the hien

    i tng = D liu + Phng thc

  • Thit k theo hng i tng

    Tru tng ha d liu v cc hm/th tc

    lin quan.

    Chia h thng ra thnh cc lp/i tng.

    Mi lp/i tng c cc tnh nng v

    hnh ng chuyn bit.

    Cc lp c th c s dng to ra

    nhiu i tng c th.

    14/09/2014 Lp trnh hng i tng 25

  • Cc c im quan trng ca OOP

    14/09/2014 Lp trnh hng i tng 26

    Cc lp i tng - Classes

    ng gi - Encapsulation

    Tha k - Inheritance

    a hnh - Polymorphism

  • Tru tng ha

    14/09/2014 Lp trnh hng i tng 27

    Thc th

    Thuc tnh

    Hnh ng

    Th gii thc Tru tng ha Phn mm

    D liu

    hm

  • Tru tng ha

    Cch nhn khi qut ha v mt tp cc i

    tng c chung cc c im c quan tm (v

    b qua nhng chi tit khng cn thit).

    14/09/2014 Lp trnh hng i tng 28

  • ng gi Che du thng tin

    14/09/2014 Lp trnh hng i tng 29

    ng gi: Nhm nhng g c lin quan vi

    nhau vo lm mt, sau ny c th dng

    mt ci tn gi n

    Cc hm/ th tc ng gi

    cc cu lnh

    Cc i tng ng gi

    d liu ca chng v

    cc th tc c lin quan

  • ng gi Che du thng tin

    Che du thng tin: ng gi che mt s

    thng tin v chi tit ci t ni b bn

    ngoi khng nhn thy

    Che giu nhng g m ngi dng khng cn.

    Che giu nhng g m mnh cn gi b mt.

    14/09/2014 Lp trnh hng i tng 30

  • Tha k

    L c ch cho php mt lp D c c cc thuc

    tnh v thao tc ca lp C, nh th cc thuc tnh

    v thao tc c nh ngha ti lp D.

    Cho php ci t nhiu quan h gia cc i

    tng:

    c bit ha (l)

    Khi qut ha

    14/09/2014 Lp trnh hng i tng 31

  • a hnh

    L c ch cho php mt tn thao tc hoc

    thuc tnh c th c nh ngha ti nhiu

    lp v c th c nhiu ci t khc nhau ti

    mi lp trong cc lp .

    14/09/2014 Lp trnh hng i tng 32

  • Cc u im ca OOP

    Nguyn l k tha: trnh lp, ti s dng.

    Nguyn l ng gi che du thng tin:

    chng trnh an ton khng b thay i bi

    nhng on chng trnh khc

    D m rng, nng cp

    M phng th gii thc tt hn.

    14/09/2014 Lp trnh hng i tng 33

  • Cc c tnh chnh ca OOP

    Chng trnh c chia thnh cc i

    tng.

    Cc cu trc d liu c thit k sao cho

    c t c i tng.

    Cc hm thao tc trn cc vng d liu

    ca i tng c gn vi cu trc d

    liu .

    14/09/2014 Lp trnh hng i tng 34

  • Cc c tnh chnh ca OOP

    D liu c ng gi li, c che giu v

    khng cho php cc hm ngoi lai truy nhp

    t do.

    Cc i tng tc ng v trao i thng tin

    vi nhau qua cc hm.

    C th d dng b sung d liu v cc hm

    mi vo i tng no khi cn thit.

    Chng trnh c thit k theo cch tip cn

    t di ln (bottom-up).

    14/09/2014 Lp trnh hng i tng 35

  • Mt s thut ng OOP

    OOM (Object Oriented Methodology): Phng

    php lun hng i tng

    OOA (Object Oriented Analysis): Phn tch hng i tng.

    OOD: Object Oriented Design (Thit k hng i tng).

    OOP: Object Oriented Programming (LTHT).

    Inheritance: K tha

    Polymorphism: a hnh

    Encapsulation: Tnh ng gi.

    14/09/2014 Lp trnh hng i tng 36

  • Ngn ng OOP

    Cung cp c nhng kh nng lp trnh

    hng i tng.

    Cung cp kh nng kim sot truy cp

    K tha

    a hnh

    14/09/2014 Lp trnh hng i tng 37

  • Bi kim tra 1

    Vit chng trnh cho php nhp mt

    dy phn s. Ci t hm tnh tng

    cc phn s v tm phn s ln nht.

    14/09/2014 Lp trnh hng i tng 38

  • Q & A