1

ệ ề ậ

i thi u v  l p trình

ướ

ớ ố ượ

Bài 1: Gi h

ng đ i t

ng

ộ Ph m Th  Bích Vân – B   môn CNPM

2

Gi

i thi u

ổ T ng quan

• L p trình h

ậ ướ ố ượ ng đ i t ng

▫ L p trình đ nh h

▫ Object Oriented Programming (OOP)

ậ ị ướ ố ượ ng đ i t ng

• Đ c xem là:

ượ

▫ Giúp tăng năng su tấ

ế ậ ệ ớ ả ơ ▫ Cách ti p c n m i, hi u qu  h n

▫ D  dàng b o trì, s a đ i, nâng c p

ử ổ ễ ả ấ

• M c đích:

ả ế ớ ▫ Gi m b t thao tác vi t trình

▫ Mô t

ả ế ớ ự ự chân th c th  gi i th c

3

ươ

T ng quan v  các ph

ng pháp l p trình

• L p trình truy n th ng.

ế

▫ L p trình phi c u trúc ( L p trình tuy n tính).

▫ L p trình c u trúc.

ướ

ố ượ

• L p trình h

ng đ i t

ng.

4

L p trình phi c u trúc

ượ

Nh

ể c đi m:

ử ụ

Không s  d ng l

ạ ượ i đ

c các đo n mã

Không có kh  năng ki m soát ph m vi truy xu t  ữ ệ d  li u

ọ ữ ệ

ươ

▫ M i d  li u trong ch

ụ ng trình là toàn c c

ể ị ử ổ ở ấ ứ ị

b t c  v  trí nào trong

ữ ệ ươ

D  li u có th  b  s a đ i  ch

ng trình.

5

L p trình phi c u trúc

§L p trình phi c u trúc :

ậ ấ

• Còn g i là l p trình tuy n tính.

ế ậ ọ

• Gi

ả ế ươ ỏ ươ ả i quy t các bài toán t ng nh , t ố ơ ng đ i đ n gi n

§Đ c đi m:

ể ặ

• Ch  g m m t ch

ỉ ồ ộ ươ ng trình chính

ồ ầ ự ệ ộ các câu l nh. Không theo m t mô

ộ • G m m t dãy tu n t hình nào.

• M i câu l nh ch  d n cho máy tính th c hi n m t công

ỉ ẫ ự ệ ộ

ỗ ệ ệ vi c gì đó.

• Ch

ươ ắ ơ ng trình ng n, ít h n 100 dòng.

ệ ậ ạ ộ ỉ • Công vi c l p trình viên: T o ra m t danh sách các ch

ỉ ệ ự ệ l nh, máy tính th c thi các ch  l nh đó.

6

ủ ụ

ẽ ở ỉ ệ ớ ộ ồ

ng trình l n, m t danh sách các ch  l nh s  tr  thành c ng  ử ụ

Phân chia thành các th  t c. ươ § Khi ch ề k nh, khó s  d ng.

ưở

ng: Chia ch ẽ ự ươ ng trình thành các hàm (th  t c, ch ộ ụ ộ ủ ụ ng trình con).  ế ế ậ t l p m t giao ti p riêng

ươ àÝ t ệ ỗ M i hàm s  th c hi n m t m c đích riêng, thi ố ớ đ i v i các hàm khác.

ưở ươ ng trình thành các hàm à Nhóm m t s  hàm thành  ộ ố

ừ • T  ý t ng chia ch các module à L p trình module. ậ

ớ ậ

V i l p trình module:

ứ ộ ạ ớ i v i nhau c chia thành

ữ ệ ủ

ủ ụ Các th  t c có chung m t ch c  ượ c nhóm l năng đ ươ ượ ng trình đ Ch ỏ ầ ề nhi u ph n nh ầ ươ Các ph n t ng tác thông qua  ủ ụ ệ ọ vi c g i th  t c ỗ M i mô đun có d  li u c a riêng  nó

7

L p trình c u trúc

ữ ờ Ra đ i vào nh ng năm 70:

ươ ượ ươ Ch ng trình đ ỏ c chia nh  thành ch ng trình con:

ủ ụ Th  t c (Procedure)

Hàm (Function)

ươ Các ch ng trình con:

ộ ậ ữ ệ ớ Đ c l p v i nhau và có d  li u riêng

ế ố ổ ụ Trao đ i qua: tham s  và bi n toàn c c

8

L p trình c u trúc

ươ

ữ ệ

ư Đ c tr ng:  Ch

ng trình= C u trúc d  li u + gi

i thu t.

ổ ứ ữ ệ

ữ ệ C u trúc d  li u: Là cách t

ch c d  li u.

ể ự

Gi

i thu t: Là quy trình đ  th c hi n m t công vi c xác đ nh.

ườ

ữ ệ

Gi

ậ i thu t th

ộ ấ ng ph i đi kèm v i m t c u trúc d  li u xác đ nh.

Chú ý:

ươ

ể ượ ọ

ề ầ

ng trình con có th  đ

c g i th c hi n nhi u l n trong m t

ỗ ươ

▫ M i ch ch

ng trình chính.

ươ

ể ọ ế

Các ch

ng trình con có th  g i đ n th c hi n theo m t th  t

ứ ự ấ ỳ  b t k .

Ư ể

u đi m:

ươ

Ch

ủ ễ ể ng trình sáng s a d  hi u, d  theo dõi.

ượ

Nh

ể c đi m:

ỗ ấ

ữ ệ

ử ụ Khó s  d ng l

i mã l nh (vì m i c u trúc d  li u đi v i m t gi

i

thu t).ậ

Không phù h p v i các ph n m m l n.

ươ

ươ

ư ế

V n đ  chia ch

ng trình l n thành các ch

ng trình con nh  th  nào

cho phù h p và hi u qu ?

9

ượ

ủ ậ

Nh

c đi m c a l p trình truy n th ng

ươ

▫ Ch

ng trình khó ki m soát

ệ ổ

ươ

▫ Khó khăn trong vi c b  sung, nâng c p ch

ng trình

ữ ệ

ổ ▫ Khi thay đ i, b  sung d  li u dùng chung thì ph i  ư ấ ả ủ ụ

ổ ổ ầ thay đ i g n nh  t

t c  th  t c/hàm liên quan

ử ụ

ư

▫ Kh  năng s  d ng l

i các đo n mã ch a nhi u

ả ầ ủ

ự ệ ố

▫ Không mô t

đ y đ , trung th c h  th ng trong th c

tế

10

ế ớ ự

Mô hình th  gi

i th c ( real­world)

ự ế ố ượ ệ ớ , chúng ta làm vi c v i các đ i t i, xe ô

ư ng nh   ng ộ ố ượ ả i

ứ ạ ự ồ

ườ Trong th c t ữ ệ ế ớ tô…Nó không ph i là d  li u hay các hàm. M t đ i t ng th  gi ử ộ th c ph c t p bao g m thu c tính(attributes) và cách hành x   (behavior).

ộ Thu c tính:

ườ ề ặ Ng i: Chi u cao, cân n ng…

ấ ả Xe ô tô: Màu xe, năm s n xu t…

Cách hành x : ử

ố ượ ứ ự ể ệ ạ ủ ộ ng th c hi n đ  đáp  ng l i tác đ ng c a các tác

Là cái mà đ i t nhân.

ọ ể ự ượ ứ ư ệ ệ ộ

ố Nó gi ng nh  các hàm. Đ c tri u g i đ  th c hi n m t ch c  năng gì đó.

ố ượ ữ ệ ứ ầ ả ơ Đ i t ng không ph i là d  li u, hay ch c năng đ n thu n mà nó bao

ả hàm c  hai cái đó trong nó.

11

ướ

ố ượ

L p trình h

ng đ i t

ng

ổ ữ ệ

ươ

c s  thay đ i d  li u khi có nhi u ch

ng trình

ượ ự ế

ể Không ki m soát đ ổ con cùng thay đ i m t bi n chung.

ế

ượ

Không ti

ệ t ki m đ

c tài nguyên.

ấ ừ ế ủ ậ ạ ấ Xu t phát t hai h n ch  c a l p trình c u trúc:

ướ ố ượ ờ ể ả ế ớ ớ ng đ i t ng ra đ i đ  gi i quy t các bài toán l n v i

ể ệ

ữ ệ

ế

ừ ượ

ng hóa,

ạ Đóng gói d  li u (h n ch  truy c p). (Th  hi n vi c tr u t đóng goi vào các l p)ớ

ử ụ

ể ệ ở ệ ế ừ

Cho phép s  d ng l

i mã ngu n (Th  hi n

vi c k  th a).

ậ ụ L p trình h m c đích:

ượ ế ợ ả ữ ệ ộ

ố ượ ẽ ự ệ ng. Trong đó các function s  th c hi n các thao

ữ ệ ng: K t h p c  d  li u và các hàm (function) vào cùng m t  Ý t ị ọ ơ đ n v  g i là đ i t tác trên d  li u.

12

ướ

ố ượ

L p trình h

ng đ i t

ng

ượ

ng

ượ

t k t theo cách t

ệ ớ c thi

ng trình đ

i lên (bottom­

ươ ậ Là ph ng pháp l p trình: ế ớ ố ượ ả ▫ Mô t ng trong th  gi i  chính xác các đ i t ậ ự ề ả ố ượ ấ ▫ L y đ i t ng làm n n t ng xây d ng thu t toán ữ ệ ủ ệ ố ế ế ▫ Thi t k  xoay quanh d  li u c a h  th ng ố ượ ươ ▫ Ch c chia thành các l p đ i t ng trình đ ệ ấ ữ ệ ượ ▫ D  li u đ c đóng gói, che d u và b o v ố ượ ▫ Đ i t ng làm vi c v i nhau qua thông báo ừ ướ ế ế ươ ▫ Ch  d up)

13

ướ

ố ượ

Mô hình h

ng đ i t

ng

14

ướ

ố ượ

L p trình h

ng đ i t

ng.

ậ ề

ệ ạ ộ ễ

ộ Các b  ph n: Bán hàng, nhân  ự ế s , k  toán trong m t công  ty. Các nhân viên trong các b  ộ ệ ph n th c hi n đi u khi n,  ữ ệ ủ ộ thao tác trên d  li u c a b   ph n.ậ ệ Vi c chia công ty thành các  ộ b  ph n giúp cho vi c hi u  ủ ể và đi u khi n ho t đ ng c a  công ty m t cách d  dàng  h nơ

15

ệ ố

ướ

ố ượ

H  th ng h

ng đ i t

ng

ệ ố

Là h  th ng có đ c đi m sau:

ố ượ

▫ G m t p h p các đ i t

ng

ủ S  đóng gói c a 2 thành ph n:

ủ ố ượ ữ ệ ộ D  li u (thu c tính c a đ i t ng)

ể ế ừ

ủ ố

ng có th  k  th a các đ c tính c a đ i

▫ Các đ i t ượ t

ố ượ ng khác

ố ượ

▫ Ho t đ ng thông qua s  t

ng

ạ ộ ờ ơ ế

ữ ự ươ ng tác gi a các đ i t ệ

nh  c  ch  truy n thông đi p

Thông báo

ậ G i & nh n thông báo

ữ ệ Các thao tác trên d  li u

16

ố ượ

Đ i t

ng (Object)

ừ ượ

ế ớ

ệ Là khái ni m tr u t

ự ng ph n ánh các th c th  trong th  gi

i

th cự

ể ậ

ộ ▫ Có th  là m t th c th  v t lý.

ừ ượ

ộ ▫ Có th  là m t khái ni m tr u t

ng.

 Human entities:Employees, Students, Customers, Salespeople.

 User­defined data types:Time,Angles,Complex numbers,Points on the plane

ự ể ệ ủ

ượ ị

ộ ớ

Đ c đ nh nghĩa là s  th  hi n c a m t l p

ệ ố

ượ

ế

Chính là các th c th  trong h  th ng đ

c xác đ nh b i ba y u

t

:ố

ố ượ

ấ ố ượ

ệ ố

Đ nh danh đ i t

ng: Xác đ nh duy nh t đ i t

ng trong h  th ng.

ủ ố ượ

Tr ng thái c a đ i t

ng:

ủ ố ượ

ạ ộ

Ho t đ ng c a đ i t

ng:

ộ ố ượ

• M t đ i t

ng là s  đóng gói 2 thành ph n:

ữ ệ

▫ Tr ng thái (state) hay d  li u

▫ Các  ng x  (behavior) hay hành vi, thao tác

17

ươ

ứ ng th c

Thu c tính & ph ồ

Thu c tính bao g m:

ế ▫ H ng, bi n

▫ Tham s  n i t

ố ộ ạ i

ượ

Thu c tính đ

c xác đ nh ki u, g m:

ể ổ ể ▫ Ki u c  đi n

ườ

ể ▫ Ki u do ng

ị i dùng đ nh nghĩa

ươ

Ph

ứ ng th c là:

▫ Các hàm n i t

ộ ạ ủ ố ượ i c a đ i t

ng

ả ề

ể ▫ Có ki u tr  v

▫ Tên g i khác: hàm thành viên

18

ộ để ể ễ ng, dùng bi u di n

ớ ộ ậ

L p (Class) ừ ượ ệ • L p là m t khái ni m, mang tính tr u t đố ượ i t

ơ

▫ VD: Trong bài toán qu n lý buôn bán xe h i, m i chi c xe là m t

i t

ng,

ả ớ đố ượ

ế ỗ ỉ ấ ả đố ượ

ộ đố ượ ơ

ơ

i t

i t

ng ch  t t c

ng xe h i.

khái ni m “Xe h i” là l p

m t t p các ng

ụ ể ủ ớ ể ệ ể ồ ự ộ ng là m t th  hi n c  th  c a l p, là m t th c th  t n

ộ ệ ố Đố ượ i t ạ t i trong h  th ng.

ễ đố ượ ũ ớ i t ng, cho nên l p c ng có

ủ ớ ươ

▫ Thu c tính c a l p t

ộ ng  ng v i thu c tính c a các

đố ượ i t

ng.

ươ

ứ ủ ớ ươ

độ

ủ đố ượ

▫ Ph

ng th c c a l p t

ớ ng  ng v i các hành

ng c a

i t

ng

• Chú ý:

ươ

ộ ▫ Ho c ch  có thu c tính, không có ph

ng th c.

ươ

▫ Ho c ch  có ph

ng th c, không có thu c tính.

ươ

ườ

ổ ế

▫ Ho c có c  thu c tính và ph

ng th c, tr

ng h p này là ph  bi n nh t.

Đặ

ệ ớ

ươ

c bi t, l p không có thu c tính và ph

ng th c nào là các l p tr u

ượ

đố ượ

ươ

t

ng. Các l p này không có

i t

ng t

ng  ng

ớ đượ • L p  ộ để ể ươ c dùng  thu c tính và ph bi u di n  ứ ng th c:

19

ố ượ

L p và đ i t

ng

ặ ố ệ ươ ứ ẫ ng  ng l n nhau,

§

ớ § L p và  ư ng, m c dù có m i liên h  t ấ ạ đố ượ i t ả nh ng b n ch t l i khác nhau:

ự ừ ượ đ đố đố ượ i t ng. Trong khi  ó, i

§

ộ ủ ng hoá c a các  ủ ớ ớ  L p là s  tr u t ượ t ể ệ ng là m t th  hi n c a l p.

ộ ự ự

ồ ạ ừ ượ ớ ng, ch  t n

đ ệ để đặ ủ ệ ng là m t th c th  c  th , có th c, t n t i trong h   ỉ ồ ệ ộ c tính chung c a m t ể ụ ể ộ ả  mô t  các

Đố ượ i t ố th ng. Trong khi  ó, l p là m tkhái ni m tr u t ạ ở ạ t i   d ng khái ni m  ốđố ượ s i t ng.

ộ ề ộ ấ ả § T t c  các ộ ớ ng thu c v  cùng m t l p có cùng các thu c

ứ đố ượ i t ươ tính và các ph ng th c.

ộ đố ượ ủ ẫ ng. Nó xác  nh

i t ầ ế ộ

§ M t l p là m t nguyên m u c a m t  ả ng c  th

ụ ể đị ộ độ ộ ng kh  thi và cácthu c tính c n thi t cho m t  đố ượ i t ộ ớ các hành  nhóm các

20

ừ ượ

Tr u t

ng hóa

ạ ừ ượ

Các lo i tr u t

ng hoá:

▫ Tr u t

ữ ệ

 Tr u t

ng hoá đ i t

ừ ượ ộ

ố ượ ủ ớ ự

ố ượ

ươ

ng theo d  li u chính là quá trình mô hình hoá  ủ ng

ng t

các thu c tính c a l p d a trên các thu c tính c a các đ i t ngứ

ạ ớ

ỉ ữ ạ

 Lo i b t các thu c tính cá bi

t, ch  gi

l

i các thu c tính chung nh t.

ừ ượ ữ ệ ng hoá d  li u:

▫ Tr u t

ừ ượ ươ

ố ượ ứ ủ ớ ự

ố ượ

 Tr u t hoá ph

ứ ng hoá đ i t ng th c c a l p d a trên các hành đ ng c a các đ i t

ng theo ch c năng chính là quá trình mô hình  ộ ng.

ạ ỏ

ỉ ữ ạ

 Lo i b  các hành đ ng cá bi

t ch  gi

l ấ ủ ớ

ấ ể ộ i các hành đ ng chung nh t đ   ố ễ ươ ng th c chung nh t c a l p bi u di n cho các đ i

hình thành các ph ượ t

ng.

ừ ượ ứ ng hoá ch c năng:

• Nh ng  u đi m c a vi c tr u t

ề ầ

ấ ▫ T p trung vào v n đ  c n quan tâm

ế ế

ế

▫ Xác đ nh nh ng đ c tính thi

t y u và nh ng hành đ ng c n thi

t

ế

ế

▫ Gi m thi u nh ng chi ti

t không c n thi

t

ữ ư ừ ượ ủ ể ệ ng hóa là:

21

Truy n thông đi p

Thông đi p:ệ

▫ Là ph khác. ộ

• M t thông đi p bao g m:

ươ ể ố ượ ệ ầ ớ ố ượ ng ti n đ  đ i t ể ng này chuy n yêu c u t i đ i t ng

ủ ng ch )

▫ Handle c a đ i t ▫ Tên ph ▫ Các thông tin c n thi

ự ươ

ươ

ư

ng th c hi n ph

ng th c nh  sau:

ố t khác (tham s )

ệ ng

ố ượ ng đích (đ i t ệ ng th c c n th c hi n ế ố ượ H  th ng yêu c u đ i t ố

ệ ố ử ể ọ

ợ ệ ủ

ệ ủ ố ượ ứ ầ ầ ự ầ ố ượ ▫ G i thông báo và tham s  cho đ i t ▫ Ki m tra tính h p l  c a thông báo ươ ươ ứ ự ▫ G i th c hi n hàm t ng  ng ph

ệ ứ ng th c

22

S  đóng gói

• Khái ni m:ệ

ơ ế

ữ ệ

▫ Là c  ch  ràng bu c d  li u và các thao tác trên d  li u

ộ ữ ệ ấ

ể ố thành th  th ng nh t. Đóng gói g m:ồ

ườ

ớ ệ ố

ế

▫ Bao gói: ng

i dùng giao ti p v i h  th ng qua giao

di nệ

ượ

ặ ▫ Che d u: ngăn ch n các thao tác không đ

c phép t

bên

ngoài

Ư ể

u đi m: ự

ổ ▫ Qu n lý s  thay đ i

ệ ữ ệ

▫ B o v  d  li u

23

ự ế ừ S  k  th a

• Khái ni m:ệ

ớ ượ

ừ ưở

c th a h

ng

▫ Kh  năng cho phép xây d ng l p m i đ ủ ớ

các thu c tính c a l p đã có

Đ c đi m:

ậ ượ

ể ổ

▫ L p nh n đ

c có th  b  sung các thành ph n

ủ ớ

ặ ị

▫ Ho c đ nh nghĩa là các thu c tính c a l p cha

ạ ế ừ

Các lo i k  th a:

ơ

ế ừ ▫ Đ n k  th a

ế ừ

▫ Đa k  th a

24

S  đa hình

ớ đượ đị

• Cho  phép  các  l p

c  nh  ngh a  các  ph ể

ứ ố

ố ượ ĩ

ươ đượ

ươ ĩ ng  th c  ng và ki u tham s ,  ứ ng th c trùng  ự ọ c  g i  là  s

trùng nhau: cùng tên, cùng s  l ể ả ề cùng ki u tr  v . Vi c  nh ngh a ph ủ ớ nhau  c a  các  l p  k   th a  nhau  còn  ươ ồ n p ch ng ph

ệ đị ừ ế ng th c.

ọ • Khi g i các ph

ự ệ

đ

đố ượ i t ng  ứ ươ ng th c  ả ng  ng, và do  ó, s  cho các k t qu  khác

ươ ng th c trùng tên, d a vào  đ ẽ ự ươ ọ ng trình s  th c hi n ph ang g i mà ch ế ẽ ứ ủ ớ ươ c a l p t nhau

đề

ụ ớ • Ví d : L p ng

i, l p nhân viên, l p sinh viên

u có

ươ

ườ ớ ng th c Show().

ph

25

ướ

Các b

c thi

ế ế ươ t k  ch

ng trình OOP

ướ

B

ả c 1: Mô t  bài toán

ướ

Đặ ả

B

c 2:

c t  yêu c u

ướ

ọ đố ượ

B

c 3: Trích ch n

i t

ng

ướ

ớ đố ượ

B

c 4: Mô hình hoá l p

i t

ng

ướ

B

ế ế ổ c 5: Thi t k  t ng quát

ẽ ế

ế

ĩ

▫ B

c này s  ti n hành thi t k  v  mô, ngh a là thi t

ệ ố

ệ ữ

ế ế ĩ ớ

ướ ế ố

k  m i quan h  gi a các l p trong h  th ng

ướ

B

ế ế ế c 6: Thi t k  chi ti t

ướ

ế ế ở ứ

ẽ ự

▫ B

m c vi mô, ngh a là

c này s  th c hi n thi t k   ủ

ế ế ế

ỗ ớ đố ượ

ệ thi t k  ki n trúc bên trong c a m i l p

i t

ĩ ng

26

Ư ể

ủ u đi m c a OOP

Ư ể

u đi m chính: ạ ỏ

ặ ạ

▫ Lo i b  các đo n mã l p l

i

ươ

▫ T o ra các ch

ậ ng trình an toàn, b o m t

ấ ở ộ ▫ D  dàng m  r ng và nâng c p

ệ ố

▫ Rút ng n th i gian xây d ng h  th ng

ả ơ ấ ▫ Tăng năng su t và hi u qu  h n

ươ

ượ

ế ế

▫ Ch

ng trình đ

c thi

t k  theo đúng qui

trình

27

ộ ố

M t s  ngôn ng  OOP

ữ ậ

• Ngôn ng  l p trình C++

ữ ậ • Ngôn ng  l p trình C#

ữ ậ • Ngôn ng  l p trình Java

28

ỏ Câu h i ôn t p

ế

• Th  nào là l p trình phi c u trúc?

ế

• Th  nào là l p trình có c u trúc?

ế

ướ

ố ượ

• Th  nào là l p trình h

ng đ i t

ng?

ố ượ

ế

• Th  nào là L p và đ i t

ng?

ủ ậ

ướ

ố ượ

• Các đ c tính c a l p trình h

ng đ i t

ng?

ừ ượ

• Tr u t

ng hóa là gì? Đi m chú ý?

• Tính đóng gói?

ế ừ

• Tính k  th a?

• Tính đa hình?

ữ ỗ ợ ậ

ướ

• Các ngôn ng  h  tr  l p trình h

ng đ i

ượ

t

ng?