Chuong 02 NH?P M - PowerPoint PPT Presentation

1 / 72
About This Presentation
Title:

Chuong 02 NH?P M

Description:

Ch ng 02 NH P M N L P TR NH H NG I T NG Introduction to OOP (3 gi ) – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 73
Provided by: TranT151
Category:
Tags: chuong

less

Transcript and Presenter's Notes

Title: Chuong 02 NH?P M


1
Chuong 02NH?P MÔN L?P TRÌNH HU?NG Ð?I
TU?NGIntroduction to OOP(3 gi?)
2
M?c tiêu
  • Nh?n bi?t s? khác bi?t gi?a l?p trình hu?ng th?
    t?c và l?p trình hu?ng d?i tu?ng.
  • Luy?n t?p tu duy l?p trình hu?ng d?i tu?ng.
  • Nh?n di?n m?t s? ngôn ng? OOP.

3
M?c tiêu
  • N?m v?ng m?t s? d?nh nghia trong OOP bao g?m
  • Tr?u tu?ng hóa d? li?u.
  • L?p, d?i tu?ng, th? hi?n.
  • Thông di?p và g?i thông di?p.
  • Tính bao dóng.
  • Tính k? th?a.
  • Tính da hình

4
N?i dung chi ti?t
  • Nhu?c di?m c?a l?p trình th? t?c.
  • Tu duy hu?ng d?i tu?ng.
  • Di?n d?t hu?ng d?i tu?ng.
  • Uu di?m c?a l?p trình hu?ng d?i tu?ng
  • Các khái ni?m can b?n c?a OOP
  • Nh?ng g?i ý c?n thi?t khi l?p trình OO.

5
2.1- L?p trình th? t?c
  • POP- Procedure Oriented Programming.
  • Data structure Algorithm Program
  • K? thu?t POP

Program
struct XX .....
Data structure
pick nouns
type Fun (XX x) .....
Problem
pick verbs
Operation (function)
void main() XX x Fun(x)
6
2.2- Nhu?c di?m c?a POP
  • Di?n d?t thi?u t? nhiên
  • Có h?c sinh x
  • Vi?t lý l?ch cho h?c sinh x
  • x oi, vi?t lý l?ch di em

Di?n d?t nào t? nhiên hon?
7
Nhu?c di?m c?a POP...
  • Khó mô t? nh?ng quan h? ph?c t?p c?a th? gi?i t?
    nhiên. Bi?u di?n d?ng c?u trúc ph?c t?p không
    ph?i là d? dàng d?i v?i nhi?u ngu?i.
  • Quan h? gi?a các d? li?u du?c bi?u di?n b?ng c?u
    trúc l?ng nhau ho?c m?t pointer. ? Tính phân l?p
    khó du?c phát hi?n, có khó khan trong bi?u di?n
    l?n tính d? hi?u.
  • Thí d? ? slide sau.

8
Nhu?c di?m c?a POP...
9
Nhu?c di?m c?a POP...
  • B?o m?t kém do không th? gi?i h?n truy xu?t d?n
    m?t d? li?u.

struct STUDENT char Name21 int Age
int Score
void main() STUDENT x Hoa, 19, 5
x.Age1000 x.Score-20
B?n nghi sao v? 2 tác v? này?
10
Nhu?c di?m c?a POP...
  • C?n m?t phuong pháp l?p trình khác giúp gi?i
    quy?t nh?ng nhu?c di?m này.
  • OOP có nh?ng d?c di?m vu?t tr?i so v?i POP và là
    hu?ng l?p trình ch? d?o hi?n nay.

11
2.2- Tu duy hu?ng d?i tu?ng
  • Ð?i tu?ng-Object
  • L?p-Class
  • Tính th?a k?- Inheritance
  • Tính da hình-Polymorphism

12
What is an object?
  • Objects are key to understanding object-oriented
    technology.
  • Some real-world objects your dog, your desk,
    your television set, your bicycle.
  • Real-world objects share two characteristics
    They all have state and behavior

13
Objects
States name color breed (nòi) hungry current gear (nhông s? hi?n hành) current pedal cadence (nh?p d?p- rpm) current speed (m/h)
Behaviors barking fetching wagging tail changing gear changing pedal cadence applying brakes
  • Identifying the state and behavior for real-world
    objects is a great way to begin thinking in terms
    of object-oriented programming.

14
How to describe a real-object?
  • Ask yourself two questions
  • "What possible states can this object be in?
  • "What possible behavior can this object
    perform?".
  • Real-world objects vary in complexity

15
How to describe a real-object?
  • Your desktop lamp may have only two possible
    states (on and off) and two possible behaviors
    (turn on, turn off).
  • Your desktop radio might have additional states
    (on, off, current volume, current station) and
    behavior (turn on, turn off, increase volume,
    decrease volume, seek, scan, and tune).
  • These real-world observations all translate into
    the world of object-oriented programming.

16
Software Object- Ð?i tu?ng ph?n m?m
  • An object is a software bundle of related state
    and behavior.
  • Software objects are often used to model the
    real-world objects that you find in everyday
    life.

17
Software objects
18
What is a class?
  • In the real world, many individual objects belong
    of the same kind.
  • Each bicycle was built from the same set of
    blueprints and therefore contains the same
    components.
  • In object-oriented terms, we say that your
    bicycle is an instance of the class of objects
    known as bicycles.
  • A class is the blueprint from which individual
    objects are created

19
2.3-Di?n d?t hu?ng d?i tu?ng
  • Thí d? 1 Xét hai di?n d?t
  • Nhân viên van phòng vi?t lý l?ch cho sinh viên
    Hoàng ? Vi?tLýL?ch(Hoàng)
  • Hoàng oi, vi?t lý l?ch di em.?Hoàng.Vi?tLýL?ch()
  • ? Theo b?n, tình hu?ng nào dúng v?i th?c t??
  • Thí d? 2 Xét hai di?n d?t
  • Tính t?ng m?ng a có n ph?n t? ? T?ng(a,n)
  • M?ng a oi, tình t?ng di em ?
    a.T?ng()
  • Xem a là m?t d?i tu?ng.

20
Di?n d?t hu?ng d?i tu?ng
  • Di?n d?t tác v? theo hu?ng th? t?c
    TênTácV?(Ð?iTu?ngD?Li?u) ? T?ng(a,n)
  • Di?n d?t tác v? theo hu?ng d?i tu?ng
    Ð?iTu?ngD?Li?u.TênTácV?() ? a.T?ng()
  • Xem d? li?u là d?i tu?ng làm chuong trình
  • t? nhiên hon vì gi?ng t? nhiên hon.

21
2.4- Uu di?m c?a OOP
  • D? mô t? các quan h? phân c?p trong th? gi?i t?
    nhiên.

22
Benefits software objects
  1. Modularity The source code for an object can be
    written and maintained independently of the
    source code for other objects..
  2. Information-hiding By interacting only with an
    object's methods, the details of its internal
    implementation remain hidden from the outside
    world.
  3. Code re-use you can use (perhaps written by
    another software developer) that object in your
    program..
  4. Pluggability and debugging ease If a bolt (con
    ?c) breaks, you replace it, not the entire
    machine.

23
Thí d? v? che d?u thông tin
  • Bên ngoài không th? tùy ti?n truy c?p m?t d? li?u
    thu?c tính ? Security

24
Thí d? v? tái s? d?ng code
Tái s? d?ng code
Tái s? d?ng code
25
2.5- Some OOP languages
  • C ( Borland C, Visual C)
  • Java
  • C ( C sharp)
  • Visual Basic.
  • .....

26
Ngôn ng? OOP
  • C, MS VC h? tr? c? POP l?n OOP ? Lai OOP. H?
    tr? da th?a k?. Ð?i tu?ng là bi?n c?a chuong
    trình. Hàm main() là POP.
  • Java (Sun), C (Microsoft) ch? h? tr? OOP, hàm
    main ph?i n?m trong m?t l?p. Ch? h? tr? don th?a
    k?.

27
2.6- Các khái ni?m can b?n c?a OOP
  • OOP Object Oriented Programming.
  • Chuong trình là s? ho?t d?ng c?a các d?i tu?ng ?
    Gi?ng t? nhiên.
  • Trong t? nhiên Ð?i tu?ng du?c bi?u di?n b?ng
    tr?ng thái (states) hành vi (behaviors).
  • Ð?i tu?ng th?c thi m?t ho?t d?ng t?c là d?i tu?ng
    th?c hi?n m?t hành vi mà d?i tu?ng này có kh?
    nang.
  • M?t chuong trình là m?t tr?t t? các l?i yêu c?u
    d?i tu?ng th?c hi?n hành vi c?a mình.
  • ? Chuong trình là m?t kích b?n (script).

28
2.7- L?p - Ki?u d? li?u tr?u tu?ng
  • Abstract Data Type.
  • K?t q?a c?a vi?c khái quát hóa các th?c th?.

29
2.8- L?p- Ki?u d? li?u tr?u tu?ng
  • Ð?i tu?ng (object) Bao gói d? li?u hành vi.
  • Ð?i tu?ng ph?i thu?c m?t l?p (class).
  • Xây d?ng m?t d?i tu?ng là xây d?ng m?t l?p
  • Class data (bi?n mô t?) methods (code).
  • data members
    function members

30
2.9-Ba d?c di?m c?a OOP
  • 3 khái ni?m co b?n c?a OOP
  • Bao gói (dóng gói) d? li?u hành vi che di
    nh?ng thành ph?n có tính t? nh? mà bên ngoài
    không th? truy c?p.
  • Tính th?a k? M?t l?p có th? th?a k? t? l?p khác.
  • Tính da hình K? thu?t cho phép có khác bi?t gi?a
    code c?a cùng m?t hành vi trong l?p cha và trong
    l?p con.

31
2.10- Bao gói - Encapsulation
  • Che d?u di d? li?u.
  • Bên ngoài ch? tuong tác du?c v?i d?i tu?ng qua
    m?t s? hành vi.
  • Hành vi giao ti?p (public, interface methods)
    Hành vi giúp d?i tu?ng giao ti?p v?i môi tru?ng.
  • Hành vi riêng/n?i (private, internal) hành vi x?
    lý d? li?u n?i t?i c?a d?i tu?ng mà bên ngoài
    không th? truy c?p.

class NGU?I Tên NamSinh TênNgu?iYêu .... getTen()
getNamSinh() getTenNguoiYeu() TiêuHóa() Nu?t() Ði(
) Ð?ng() Ch?y() Nh?y() .......
getTen()
getNamSinh()
getTenNguoiYeu()
Ði()
Ð?ng()
interfaces
32
Bao gói.....
V?i khai báo này, bên ngoài có th? truy c?p 2
thu?c tính m?u hay không?
33
Bao gói
  • class
  • CASSETTE
  • Ð?cBang()
  • GhiBang()
  • X?LýNhi?u()

Play()
Stop()
Môi tru?ng bên ngoài
Rewind()
Forward()
Record()
Interfaces (public methods)
Hành vi n?i (private methods)
34
Bao gói interface
  • Set of common methods of a class through them, an
    object can interact with the outside world.
  • The buttons on the front of your television set,
    for example, are the interface between you and
    the electrical wiring on the other side of its
    plastic casing. You press the "power" button to
    turn the television on and off.

35
2.11-Tính th?a k?-Inheritance
  • Các lo?i d?i tu?ng khác nhau thu?ng có chung m?t
    s? d?c di?m.

36
Tính th?a k?
  • T? nh?ng l?p d?i tu?ng dã có, ta có th? d?c t?
    l?p d?i tu?ng m?i, l?p m?i s? mang nh?ng d?c tính
    c?a nh?ng l?p dã có (di truy?n) nh?ng d?c tính
    m?i c?a riêng nó ? Con Cha m?t tí khác
    bi?t.
  • ? Ti?t ki?m công s?c vi?t code và test.
  • T?n t?i m?i quan h? cha (l?p n?n,base,parent)-
    con ( l?p d?n xu?t,derived class).
  • C cho phép da th?a k? (1 l?p có th? là d?n xu?t
    c?a nhi?u l?p khác).
  • C, Java là ngôn ng? OO don th?a k?.
  • ? Th?a k? là d?c di?m tái s? d?ng thông tin c?a
    OOP.

37
Tính th?a k?
Ð? du?c cái tuong duong
class STUDENT
ID_Num Name YearOfBirth Address getID_Num() setID_
Num(newID) ......
th?a k?
quan h? là 1
RollNum Score getScore() setSore(newScore) ......
tính ch?t riêng
class STUDENT
RollNum Score getScore() setSore(newScore) ......
Ch? ph?i hi?n th?c b?ng này
Con Cha m?t tí
38
2.12- Ða hình-Polymorphism
  • Kh? nang có nh?ng hi?n th?c khác nhau cho cùng
    m?t hành vi.
  • K? thu?t cho phép thay d?i n?i dung c?a cùng m?t
    hành vi trong 2 l?p cha con.
  • B?n ch?t S?a code c?a cùng m?t hành vi ? 2 l?p
    cha con d? các code này khác nhau.
  • Ða hình t?o ra kh? nang cho phép g?i m?t hành vi
    c?a m?t l?p mà không c?n quan tâm d?n hi?n th?c
    c?a hành vi này.

39
Thí d? v? tính da hình
class ÐànBà void DiChuy?n()
class Ngu?i void DiChuy?n()
class ÐànÔng void DiChuy?n()
Ða hình t?o du?c tính m?m d?o/linh d?ng c?a
chuong trình
40
2.13-Phân bi?t L?p, Th? hi?n, Bi?n d?i tu?ng
  • class Hi?n th?c c?a m?t t?p các d?i tu?ng
    (object) cùng lo?i ? Cùng d? mô t? (data), cùng
    hành vi (methods).
  • Th? hi?n instance M?t thông tin v? m?t d?i
    tu?ng có trong b? nh? c?a chuong trình.
  • Bi?n d?i tu?ng (g?i t?t là d?i tu?ng)
  • Pointer c?a d?i tu?ngTham chi?u d?n m?t th?c th?
    c?a l?p.

7
5
Hoa
1000
300
obj
1000
Student obj new Student(Hoa,5,7)
41
2.14- Thông di?p, thông báo - Message
  • G?i thông báo Yêu c?u 1 d?i tu?ng th?c thi m?t
    hành vi.
  • Thí d?
  • x là m?t HOCSINH lt Name, Agegt
  • x.VietLyLich()
  • String S x.getName()
  • int n x.getAge()

42
2.15- G?i ý khi thi?t k? m?t l?p
  • Ta c?n bi?t nh?ng thông tin gì v? m?t d?i tu?ng
    thu?c l?p này. ? D? li?u mô t?.
  • Ta (bên ngoài) th?c s? c?n x? lý gì (d?ng t?)
    trên d?i tu?ng ? Hành vi giao ti?p.
  • Ð? có du?c hành vi giao ti?p, có c?n nh?ng x? lý
    thêm mà bên ngoài không c?n bi?t d?n ? Hành vi
    n?i.
  • Ðon gi?n nh?t V?i m?i thu?c tính d? li?u c?a
    l?p, s? có 2 hành vi thao tác (g?i là accessors)
    get, set (g?i là getter, setter)thao tác lên d?
    li?u này.

43
Bài t?p t?i ch?
class Student
char code 12 char name30
int score1 int score2 int score3
void input()
void output()
  • Thi?t k? l?p mô t? và x? lý m?t h?c sinh, bi?t
    r?ng h?c sinh ph?i h?c 3 môn h?c.

char getCode()
void setCode(char newCode)
char getName()
void setName(char newName)
int getScore1()
void setScore1(int s1)
int getScore2()
void setScore2(int s2)
int getScore3()
void setScore3(int s3)
float avg()
44
2.16- G?i ý v? phân tích th?a k?
  • (1) Li?t kê d?c di?m c?a các d?i tu?ng c?n quan
    tâm.
  • (2) Tìm t?p giao c?a các tính ch?t gi?a các l?p,
    tách t?p giao này d? xây d?ng l?p cha.
  • (3) Ð?t 1 tên g?i có ý nghia cho l?p cha.
  • (4) Ph?n còn l?i sau khi tách t?p giao là các l?p
    con.

45
Th?a k? - Bài m?u
  • Phân tích phân c?p th?a k? cho các l?p
  • Hàng di?n máy ltmã hàng, tên hàng, nhà s?n xu?t,
    giá, th?i gian b?o hành, di?n áp, công su?tgt
  • Hàng sành s? lt mã hàng, tên hàng, nhà s?n xu?t,
    giá, lo?i nguyên li?ugt
  • Hàng th?c ph?m ltmã hàng, tên hàng, nhà s?n xu?t,
    giá, ngày s?n xu?t, ngày h?t h?n dùnggt

46
Bài gi?i
  • HangÐienMay lt maH,tenH,nsx,gia, tgbh,da,cs gt
  • HangSanhSu lt maH,tenH,nsx,gia, lnl gt
  • HangThucPham lt maH,tenH,nsx,gia, ngsx,nhhd gt

47
Th?a k?- Bài t?p làm t?i ch?
  • Phân tích phân c?p th?a k? cho các d?i tu?ng
    trong m?t h?c vi?n
  • Nhân viên qu?n lý ltmã nv, tên nv, nam sinh, trình
    d?, tru?ng dào t?o, chuyên môn, luong cb, ph? c?p
    ch?c v?gt
  • Nhân viên nghiên c?u ltmã nv, tên nv, nam sinh,
    trình d?, tru?ng dào t?o, chuyên môn, luong cb,
    ph? c?p d?c h?igt
  • Nhân viên ph?c v? ltmã nv, tên nv, nam sinh, trình
    d?, luong cbgt

48
2.17- G?i ý v? cách gi?i bài toán theo OOP
Program
class XX type1 prop1 type2 prop2
....... type Method1(...) .....
properties
pick nouns
Bao gói d? li?u và hành vi thành class
Problem
pick verbs
Operation (function, method, behavior)
void main() XX x // object variable
x.Method(...)
49
Ð? bài
  • Vi?t chuong trình nh?p, xu?t 1 h?c sinh. Thông
    tin c?n quan tâm v? 1 h?c sinh Mã h?c sinh (8 ký
    t?), tên h?c sinh (30 ký t?), di?m (int).
  • Danh t? H?c sinh ? c?u trúc HS
  • Ð?ng t?
  • B?t d?u
  • Nh?p m?t hs ? Hàm Nhap(HShs)
  • Xu?t m?t hs ? Hàm Xuat(HS hs)
  • Ngung.

50
Gi?i bài toán hu?ng POP v?i C
51
Gi?i bài toán hu?ng OOP
Thành ph?n public là thành ph?n cho phép bên
ngoài truy c?p.
52
Ð?i ch?ng hai cách hi?n th?c
53
Tóm t?t
  • POP Xem d? li?u và tác v? r?i nhau.
  • Các nhu?c di?m c?a POP
  • Mô t? các quan h? gi?a các d?i tu?ng d? li?u
    trong t? nhiên theo cách không t? nhiên.
  • Khó tái s? d?ng code.
  • B?o m?t kém.

54
Tóm t?t
  • OOP Xem d? li?u và tác v? là m?t th? th?ng nh?t.
  • Uu di?m c?a OOP
  • Mô t? các quan h? gi?a các d?i tu?ng d? li?u
    trong t? nhiên theo cách t? nhiên.
  • Tính mo-dun hóa
  • Có co ch? b?o m?t d? li?u.
  • D? tái s? d?ng code.
  • D? thay d?i (pluggability) và d? ki?m l?i.

55
Câu h?i Ph?n t? h?c
  • Trình b?y phuong pháp l?p trình POP.
  • Trình b?y phuong pháp l?p trình OOP.

56
Tr?c nghi?m
  1. V?i khai báo struct, ta v?n có th? t?o co ch? b?o
    m?t m?t thành ph?n d? li?u. (a) Ðúng (b) Sai.
  2. V?i khai báo struct, mu?n thao tác d?n d? li?u
    b?t bu?c ph?i thông qua m?t hàm. (a) Ðúng (b)
    Sai.
  3. Ð? tái s? d?ng code C, code du?c tái s? d?ng
    ph?i du?c d? trong m?t file và không có hàm main.
    (a) dúng (b) sai.

57
Bài t?p
  • Phân tích ph? h? th?a k? cho các khái ni?m
    sau
  • Window lt x_position, y_position, width, height,
    backColor, foreColorgt
  • ListBox lt x_position, y_position, width, height,
    backColor, foreColor, lineCount, lineHeight,
    contentList, selectedTextgt
  • Button lt x_position, y_position, width, height,
    backColor, forColor, title, icongt
  • ComboBox lt x_position, y_position, width, height,
    backColor, foreColor, lineCount, lineHeight,
    contentList, dropdownCount, selectedTextgt

58
Question 1
  • OOP stands for
  • a- Object Online Programming
  • b- Object Of a Program
  • c- Object Oriented Programming

c?
59
Question 2
  • What descriptions below are not OOP format ?
  • a- Write the record for student Phúc
  • b- Write the record of student Phúc
  • c- Hello Phúc, write your record.

60
Question 3
  • What description below is POP format?
  • a- DrawCircle(v)
  • b- v.Draw()

a?
61
Question 4
  • Identify the basic characteristics of OOP
  • a- Data hidding.
  • b- Inheritance.
  • c- Polymorphism.
  • d- All of the above

d?
62
Question 5
  • class is
  • a- Data which describes a concept.
  • b- A code segment of a program.
  • c- Template of a set of objects which have the
    same properties and behaviors.
  • d- All of the above are wrong.

c?
63
Question 6
  • Select incorrect statements
  • a- class properties methods
  • b- class properties
  • c- class functions that will operate on data

b?
c?
64
Question 7
  • Indentify the correct statement.
  • a- Encapsulation the packaging of attributes
    (properties) and functionality (methods or
    behaviors) to create an object that is
    essentially a black box.
  • b- inheritance The transfer of the
    characteristics of a class in object-oriented
    programming to other classes derived from it.
  • c- polymorphism The ability to redefine a
    routine in a derived class.
  • d- All of the above.

d?
65
Question 8
  • Identify the advantages of OOP
  • a- High level modulization.
  • b- Able to describe the complex relations in real
    objects.
  • c- Able to reuse code.
  • d- Easy to maintain application .
  • e- All of the above

e?
66
Question 9
  • C is a
  • a- Multiple inheritance OOP language.
  • b- Single inheritance OOP language.

a?
67
Question 10
  • Identify the correct keywords that will be
    used when a class is implemented using C
  • a- Class, Private, Public
  • b- Class, private, public
  • c- class, private, public
  • d- CLASS, PRIVATE, PUBLIC

c?
68
Question 11
  • What is the correct syntax when a method is
    implemented outside the class declaration block.
  • a- DataType Method (params)
  • ltCodegt
  • b- DataType ClassNameMethod (params)
  • ltCodegt

b?
69
Question 12
  • Study error code below
  • class A
  • int x
  • public
  • void T()
  • What line will cause an error?
  • a- 1
  • b- 2
  • c- 3
  • d- 4
  • e- 5

70
Question 13
  • Identify the wrong statement
  • a- All objects of a program will be alive and
    dead at the same time.
  • b- The life of an object begins at the time when
    the code line, that defines it, is executed, and
    ends when the code block, that contains it, is
    executed completely.
  • c- Scope of an object is code block that begins
    at the line that the object is defined and ends
    at the curly closed brace of the block.

a?
71
Question 14
  • In order to make easiness in maintaining an
    application.
  • a- We should store class implement and using
    class code separately.
  • b- We should not store class implement and using
    class code separately.

a?
72
THANK YOU
Write a Comment
User Comments (0)
About PowerShow.com