1. Trang chủ
  2. » Công Nghệ Thông Tin

CoreJava : Lập trình hướng đối tượng

24 131 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giới thiệu về lập trình hướng đối tượng
Chuyên ngành Lập trình hướng đối tượng
Thể loại Bài giảng
Định dạng
Số trang 24
Dung lượng 202,09 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2 Nhân viên bán hàng... th c’ method... Nhân viên nào bán xe... Nó mang tính cách t ng quát ch không mang tính cách đ c thù... Tuy nhiên chúng ta không bi t thu c tính nào qua đó chúng t

Trang 1

1.1 Gi i thi u v L p trình h ng i t ng (Object-oriented Programming)

L p trình h ng i t ng (OOP) là m t ph ng pháp thi t k và phát tri n ph n m m

Nh ng ngôn ng OOP không ch bao g m cú pháp và m t trình biên d ch (compiler) mà còn có m t môi tr ng phát tri n toàn di n Môi tr ng này bao g m m t th vi n đ c thi t k t t, thu n l i cho vi c s d ng các đ i t ng

i v i m t ngôn ng l p trình h tr OOP thì vi c tri n khai k thu t l p trình h ng

h ng đ i t ng cung c p m t gi i pháp toàn v n đ gi i quy t v n đ

Hãy xem xét m t tình hu ng c n đ c tri n khai thành m t h th ng trên máy vi tính:

vi c mua bán xe h i V n đ vi tính hóa vi c mua bán xe h i bao g m nh ng gì?

Nh ng y u t rõ ràng nh t liên quan đ n vi c mua bán xe h i là:

1) Các ki u xe h i (model)

2) Nhân viên bán hàng

3) Khách hàng

Trang 2

Nh ng ho t đ ng liên quan đ n vi c mua bán:

1) Nhân viên bán hàng đ a khách hàng tham quan phòng tr ng bày

2) Khách hàng ch n l a m t xe h i

3) Khách hàng đ t hóa đ n

4) Khách hàng tr ti n

5) Chi c xe đ c trao cho khách hàng

M i v n đ đ c chia ra thành nhi u y u t , đ c g i là các i t ng (Objects) ho c các Th c th (Entities) Ch ng h n nh ví d trên, khách hàng, xe h i và nhân viên bán hàng là nh ng đ i t ng ho c th c th

L p trình viên luôn luôn c g ng t o ra nh ng k ch b n (scenarios) th t quen thu c v i

nh ng tình hu ng đ i s ng th c B c th nh t trong đ ng h ng này là làm cho máy tính liên k t v i nh ng đ i t ng th gi i th c

Tuy nhiên, máy tính ch là m t c máy Nó ch th c hi n nh ng công vi c đ c l p trình

mà thôi Vì th , trách nhi m c a l p trình viên là cung c p cho máy tính nh ng thông tin theo cách th c mà nó c ng nh n th c đ c cùng nh ng th c th nh chúng ta nh n th c

th c’ (method)

Có nhi u lo i đ i t ng khác nhau Chúng ta có th xem các b ph n khác nhau trong

m t c quan là các đ i t ng i n hình là m t c quan có nh ng b ph n liên quan đ n

vi c qu n tr , đ n vi c kinh doanh, đ n vi c k toán, đ n vi c ti p th … M i b ph n có nhân s riêng, các nhân s đ c trao cho nh ng trách nhi m rõ ràng M i b ph n c ng

có nh ng d li u riêng ch ng h n nh thông tin cá nhân, b ng ki m kê, nh ng th th c kinh doanh, ho c b t k d li u nào liên quan đ n ch c n ng c a b ph n đó Rõ ràng là

m t c quan đ c chia thành nhi u b ph n thì vi c qu n tr nhân s và nh ng ho t đ ng doanh nghi p d dàng h n Nhân s c a c quan đi u khi n và x lý d li u liên quan

đ n b ph n c a mình

Ch ng h n nh b ph n k toán ch u trách nhi m v l ng b ng đ i v i c quan N u

m t ng i đ n v ti p th c n nh ng chi ti t liên quan đ n l ng b ng c a đ n v mình,

ng i y ch c n liên h v i b ph n k toán M t ng i có th m quy n trong b ph n k toán s cung c p thông tin c n bi t, n u nh thông tin y có th chia s đ c M t ng i

Trang 3

không có th m quy n t m t b ph n khác thì không th truy c p d li u, ho c không th thay đ i làm h h ng d li u Ví d này minh ch ng các đ i t ng là h u d ng trong

th p nh t B ng k thu t này, các ch ng trình đ c c u trúc theo h th ng phân c p các module M i m t module có m t đ u vào riêng và m t đ u ra riêng Trong m i module,

s đi u khi n có chi u h ng đi xu ng theo c u trúc ch không có chi u h ng đi lên

Ph ng pháp OOP c g ng qu n lý vi c th a k ph c t p trong nh ng v n đ đ i th c làm đ c vi c này, ph ng th c OOP che gi u m t vài thông tin bên trong các đ i

t ng OOP t p trung tr c h t trên d li u R i g n k t các ph ng th c thao tác trên d

li u, vi c này đ c xem nh là ph n th a k c a vi c đ nh ngh a d li u B ng 1.1 minh

h a s khác bi t gi a hai ph ng pháp:

Chúng ta s xây d ng m t khách s n Chúng ta s xây d ng m t tòa nhà 10 t ng

v i nh ng dãy phòng trung bình, sang

Trang 4

1.2 Tr u t ng hóa d li u (Data Abstraction)

Khi m t l p trình viên ph i phát tri n m t ch ng trình ng d ng thì không có ngh a là

ng i y l p t c vi t mã cho ng d ng y Tr c h t, ng i y ph i nghiên c u ng d ng

và xác đ nh nh ng thành ph n t o nên ng d ng K ti p, ng i y ph i xác đ nh nh ng thông tin c n thi t v m i thành ph n

Hãy kh o sát ch ng trình ng d ng cho vi c mua bán xe h i nói trên Ch ng trình ph i

xu t hóa đ n cho nh ng xe h i đã bán cho khách hàng xu t m t hóa đ n, chúng ta

c n nh ng thông tin chi ti t v khách hàng V y b c th nh t là xác đ nh nh ng đ c tính

T danh sách k trên, chúng ta xác đ nh nh ng đ c tính thi t y u đ i v i ng d ng B i

vì chúng ta đang đ c p đ n nh ng khách hàng mua xe, vì th nh ng chi ti t thi t y u là: Tên

a ch

Còn nh ng chi ti t khác (chi u cao, màu tóc …) là không quan tr ng đ i v i ng d ng Tuy nhiên, n u chúng ta phát tri n m t ng d ng h tr cho vi c đi u tra t i ph m thì

nh ng thông tin ch ng h n nh màu tóc là thi t y u

Bên c nh nh ng chi ti t v khách hàng, nh ng thông tin sau c ng c n thi t:

Ki u xe đ c bán

Nhân viên nào bán xe

Bên c nh nh ng đ c tính c a khách hàng, xe h i và nhân viên bán hàng, chúng ta c ng

Trang 5

Khung thông tin bên d i cho th y nh ng thu c tính và nh ng hành đ ng liên quan đ n

Ti p theo, chúng ta mu n ng d ng tính toán ti n hoa h ng cho nhân viên bán hàng

Nh ng thu c tính liên k t v i nhân viên bán hàng có t ng quan v i ng d ng này là:

Tên

S l ng xe bán đ c

Ti n hoa h ng

Nh ng hành đ ng đòi bu c đ i v i công vi c này là:

Nh p tên nhân viên bán xe

Trang 6

Gi m thi u nh ng chi ti t không c n thi t

Vi c tr u t ng hóa d li u là c n thi t, b i vì không th mô ph ng t t c các hành đ ng

Trang 7

M t l p là m t mô hình khái ni m v m t th c th Nó mang tính cách t ng quát ch không mang tính cách đ c thù

Khi đ nh ngh a m t l p, chúng ta mu n phát bi u r ng m t l p s ph i có m t t p h p các thu c tính và các hành đ ng riêng Ch ng h n nh m t đ nh ngh a l p d i đây:

L p Con ng i

Tên Chi u cao Màu tóc

Vi t Nói

L p này đ nh ngh a th c th ‘Con ng i’ M i th c th thu c ki u ‘Con ng i’ s đ u có

nh ng đ c tính và nh ng hành đ ng nh đã đ c đ nh ngh a

M t khi m t l p đã đ c đ nh ngh a, chúng ta bi t đ c nh ng thu c tính và nh ng hành

đ ng c a nh ng th c th ‘trông gi ng’ nh l p này Vì th , t b n ch t m t l p là m t nguyên m u (prototype)

M t ví d khác v m t l p liên quan đ n vi c mua bán xe h i nh sau:

L p trên đ nh ngh a các thu c tính và các hành đ ng đ c tr ng cho m i nhân viên bán xe

Trang 8

s ph i có nh ng giá tr th c đ i v i các thu c tính ‘Tên’, ‘ a ch ’, ‘Ki u xe’ …

Ch ng h n nh m t khách hàng có tên là ‘Mark’, s ng ‘London’ đã mua m t xe ki u

‘Honda Civic’ t nhân viên bán hàng tên là ‘Tom’ Nh th , ‘Mark’ là m t đ i t ng c a

ki u ‘Khách hàng’

M t đ i t ng là m t th c th c th (thông th ng b n có th s ch m, xem th y và c m

nh n)

K t lúc m t đ i t ng hi n h u, nh ng thu c tính c a nó là nh ng giá tr xác đ nh, và

nh ng hành đ ng đ c đ nh ngh a cho đ i t ng này đ c th c thi

Trong m i m t đ i t ng, các khía c nh sau đây đ c xác đ nh rõ:

Trang 9

Hình 1.2 trình bày hai đ i t ng đ i th c

M i đ i t ng có nh ng đ c tính riêng mô t đ i t ng y là gì, ho c hành đ ng ra sao

Ch ng h n nh nh ng thu c tính c a m t đ i t ng ‘Con ng i’ s là:

Xe h i

Ki u: Ferrari Màu:

N m: 1995

Hành đ ng:

Kh i đ ng

Ng ng Chuy n đ ng

Hình 1.2: M t đ i t ng Con ng i và m t đ i t ng Xe h i

Trang 10

đ c t o t l p ‘Khách hàng’

Nh th , các thu c tính n m gi các giá tr d li u trong m t đ i t ng, chúng đ nh ngh a

m t đ i t ng đ c thù

B i vì m t l p là m t nguyên m u cho nên các thu c tính trong m t l p không th n m

gi các giá tr M t thu c tính có th đ c gán m t giá tr ch sau khi m t đ i t ng d a trên l p y đ c t o ra

Trang 11

ph ng th c là s th c thi th c t m t ho t đ ng, cho nên nó có th đ c áp d ng cho

m t đ i t ng M t ph ng th c là m t thu t toán t ng b c (step-by-step) xác đ nh đi u

gì đ c th c hi n khi ho t đ ng y đ c yêu c u

Hãy kh o sát nh ng ho t đ ng chung c a m t th c th thu c lo i ‘Con ng i’: i, Nói

Ch khi m t đ i t ng c th c a lo i ‘Con ng i’ đ c t o ra thì các hành đ ng ‘ i’,

‘Nói’ m i đ c th c thi

1.4.4 Thông đi p (Message)

yêu c u m t ho t đ ng c th nào đó đ c th c hi n, m t thông đi p đ c g i t i đ i

t ng, thông đi p này đ nh ngh a ho t đ ng

nh ngh a

M t ho t đ ng là m t d ch v đ c đòi h i c a m t đ i t ng

nh ngh a

Ph ng th c là m t s xác đ nh v cách th c m t ho t đ ng đ c yêu c u đ c th c thi

nh ngh a

M t thông đi p là m t l i yêu c u m t ho t đ ng

Trang 12

Khi m t đ i t ng nh n đ c m t thông đi p, nó th c hi n m t ph ng th c t ng ng

Ch ng h n, m t đ i t ng đ c t o t l p ‘Khách hàng’ đ nh p tên c a ng i s d ng Khi đ i t ng nh n đ c thông đi p, nó tìm và th c thi ph ng th c ‘Nh p tên’

Trong tr ng h p m t công ty, m i b ph n đ c coi là m t đ i t ng Nh ng thông tin

đ c chuy n t i và đ c đón nh n t m i b ph n (ho c qua thông báo liên b ph n,

ho c qua nh ng ch th mi ng) t o nên nh ng thông đi p gi a các đ i t ng Nh ng ch

th này có th đ c chuy n d ch thành nh ng l i g i hàm trong m t ch ng trình

Trong hình 1.3, ‘Kinh doanh’ và ‘K toán’ là hai b ph n khác nhau trong m t công ty Hai b ph n này đ c coi là hai đ i t ng khác nhau Thông tin đ c truy n đi và đ c đón nh n gi a các b ph n t o nên các thông đi p gi a các đ i t ng

Trang 13

1.6 Thi t l p (Construction) và H y (Destruction)

c a đ i t ng s n sàng đ s d ng

nh ngh a

Thi t l p là m t ti n trình hi n th c hóa m t đ i t ng

Hàm thi t l p là m t ph ng th c đ c bi t ph i đ c g i tr c khi s d ng b t k

ph ng th c nào trong m t l p Hàm Thi t l p kh i t o các thu c tính, và c p phát b

nh trong máy tính khi c n thi t

Trang 14

T ng t nh tr ng h p m t h c sinh nh p h c t i m t tr ng h c Khi m t h c sinh

nh p h c, m t vài hành đ ng đ c th c hi n đ nh n h c sinh y vào tr ng ó là:

Khi m t đ i t ng không còn c n thi t n a thì nó s b h y b

S lãng phí tài nguyên, ch ng h n nh b nh , n u nh ti p t c đ cho m t đ i t ng t n

t i m t khi nó không còn c n thi t

M t khi m t đ i t ng b h y thì các thu c tính c a nó không th đ c truy c p, c ng

nh không m t ph ng th c nào có th đ c th c thi

Ch ng h n, trong tr ng h p bán xe h i, m t khi nhân viên bán hàng b ngh , nh ng chi

ti t c a ng i y không còn liên h Vì th , đ i t ng t ng ng s b h y i u này gi i phóng b nh đã c p phát cho nhân viên bán hàng y Kho ng tr ng này gi đây có th

đ c tái s d ng

Hãy xem xét ví d v tr ng h c trên đây Khi m t h c sinh thôi h c, tên c a h c sinh y

b lo i ra kh i danh sách, và kho ng tr ng đ c gi i phóng có th đ c tái c p phát Các hành đ ng đ ng lo t này t ng t v i công vi c c a hàm h y đ i v i m t đ i t ng

y

Trang 15

C a hàng bán xe l u tr chi ti t khách hàng vào m t file Nh ng chi ti t này s t n t i trong file cho đ n khi chúng b h y, ho c b n thân file b h y

Chúng ta đ ng ch m tính b n v ng m i ngày Hãy xem vi c sáng tác m t bài th Bài th

là d li u t n t i trong tâm trí c a nhà th Bao lâu nhà th còn t n t i thì b y lâu bài th còn t n t i N u bài th mu n t n t i ngay c sau khi nhà th qua đ i thì nó ph i đ c

vi t ra gi y

Bài th đ c vi t ra gi y t o nên s b n v ng Bài th s t n t i bao lâu v n b n y còn

đ c duy trì Bài th y không còn t n t i khi t gi y y b xé rách, ho c ch ngh a b xóa đi

đ n Gi s r ng khi hóa đ n đ c xu t, m t trong nh ng chi ti t đ c in ra trên hóa đ n

là ngày phân ph i Tuy nhiên chúng ta không bi t thu c tính nào qua đó chúng ta có th xác đ nh thông tin này

Ngày phân ph i đ c phát sinh bên trong đ i t ng, và đ c hi n th trên hóa đ n Nh

th ng i s d ng không nh n th c v cách th c mà ngày phân ph i đ c hi n th

Ngày phân ph i có th đ c x lý theo m t trong nh ng cách sau:

ó là m t giá tr đ c tính toán - Ch ng h n, 15 ngày k t ngày đ t hàng

ó là m t giá tr c đ nh – Xe h i đ c phân ph i vào ngày mùng 2 m i tháng

i t ng s d ng nh ng thu c tính và nh ng ph ng th c mang tính n i b B i vì

nh ng thu c tính và nh ng ph ng th c có th đ c che khu t kh i t m nhìn Các đ i

t ng khác và nh ng ng i s d ng không nh n th c đ c các thu c tính và / ho c các

ph ng th c nh th có t n t i hay không Ti n trình che gi u các thu c tính, các ph ng

th c, ho c các chi ti t c a vi c thi hành đ c g i là ‘đóng gói’ (encapsulation)

nh ngh a

Tính B n v ng là kh n ng l u tr d li u c a m t đ i t ng ngay c khi đ i t ng

y không còn t n t i

Trang 16

Vi c đóng gói phân tách nh ng khía c nh có th truy c p t bên ngoài v i nh ng khía

c nh ch đ c s d ng trong n i b c a đ i t ng

i m thu n l i c a vi c đóng gói là có th t o ra b t k thu c tính hay ph ng th c c n thi t đ đáp ng đòi h i công vi c khi xây d ng m t l p M t khác, ch nh ng thu c tính

và / ho c nh ng ph ng th c có th đ c truy c p t bên ngoài l p là trông th y

M t ví d khác v vi c đóng gói là l p ‘Nhân viên bán hàng’ đã đ c đ nh ngh a trên Khi ph ng th c tính ti n hoa h ng đ c th c thi, ng i s d ng không bi t chi ti t c a

vi c tính toán T t c nh ng gì h bi t ch là t ng s ti n hoa h ng mà h ph i tr cho nhân viên bán hàng

M t tr ng h p v đóng gói mà chúng ta g p trong đ i s ng h ng ngày là vi c giao d ch kinh doanh m t c a hàng Khách hàng yêu c u s n ph m X H đ c trao cho s n

ph m X, và h ph i tr ti n cho s n ph m y Sau khi khách hàng yêu c u s n ph m,

ng i bán hàng th c hi n nh ng hành đ ng sau:

Ki m tra m t hàng trên k hàng

Gi m s l ng m t hàng trong b ng ki m kê sau khi bán

Tuy nhiên, khách hàng không đ c bi t nh ng chi ti t này

1.9 Tính th a k

Hãy kh o sát các l p sau:

Tên Tên Tên

Trang 17

Ba l p ‘Sinh viên’, ‘Nhân viên’ và ‘Khách hàng’ t o nên l p ‘Ng i’ Nói cách khác, ba

l p y có t t c các thu c tính và các ph ng th c c a l p ‘Ng i’, ngoài ra chúng còn

có nh ng thu c tính và nh ng ph ng th c riêng

Chúng ta c n ph i đ nh ngh a l p ‘Ng i’ và s d ng nó trong khi đ nh ngh a các l p

‘Sinh viên’, ‘Nhân viên’ và ‘Khách hàng’

Chúng ta xây d ng m t l p ‘Ng i’ v i nh ng thu c tính và nh ng ho t đ ng nh đã trình bày hình trên K ti p, chúng ta xây d ng l p ‘Khách hàng’ bao g m l p ‘Ng i’

c ng v i nh ng thu c tính và nh ng ph ng th c riêng

Chúng ta có th đ nh ngh a các l p ‘Sinh viên’ và ‘Nhân viên’ theo cùng cách th c trên

Nh th , c ba l p ‘Khách hàng’, ‘Sinh viên’ và ‘Nhân viên’ đ u chia s nh ng thu c tính và nh ng ph ng th c mà l p ‘Ng i’ cung c p

Theo ngôn ng h ng đ i t ng, l p ‘Khách hàng’ đ c g i là th a k l p ‘Ng i’

Có hai khái ni m quan tr ng khác liên k t v i tính th a k L p ‘Khách hàng’ là l p

‘Ng i’ c ng thêm cái khác Nh th , l p ‘Khách hàng’ có t t c các thu c tính và các

ph ng th c đ c đ nh ngh a trong l p ‘Ng i’ c ng v i các thu c tính và các ho t đ ng

Trang 18

Trong ví d trên, l p ‘Ng i’ đ c coi là ‘l p trên’ (superclass)

Hãy xem xét ví d v l p ‘Các đ ng v t’ hình 1.4 ‘Các đ ng v t’ là l p trên cùng mà các l p khác k th a Chúng ta có m t dãy các l p trung gian – ‘Côn trùng’, ‘H u nh ’,

‘Bò sát’, ‘L ng c ’ - mà dãy các l p d i k th a

Các l p ‘Côn trùng’, ‘H u nh ’, ‘Bò sát’, ‘L ng c ’ là nh ng l p con c a l p trên ‘Các

đ ng v t’ Nh th , nh ng l p này có t t c nh ng thu c tính và các ho t đ ng c a l p

‘Các đ ng v t’, c ng thêm nh ng thu c tính và nh ng ph ng th c c a riêng chúng

L p ‘H u nh ’ là l p mà các l p ‘Con ng i’ và ‘Khác con ng i’ th a k Nh th , các

l p ‘Con ng i’ và ‘Khác con ng i’ là các l p con c a l p trên ‘H u nh ’

1.9.1 Tính a Th a k

Trong t t c các ví d trên, m t l p th a k ch t m t l p Ngay c trong ví d th a k

v các lo i ph ng ti n di chuy n, m i l p con ch có m t l p cha Tr ng h p nh th

Ngày đăng: 27/10/2013, 22:15

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Minh h a c u trúc c a m t c  quan  đ i n hình. - CoreJava : Lập trình hướng đối tượng
Hình 1.1 Minh h a c u trúc c a m t c quan đ i n hình (Trang 3)
Hình 1.2 trình bày hai đ i t ng đ i th c. - CoreJava : Lập trình hướng đối tượng
Hình 1.2 trình bày hai đ i t ng đ i th c (Trang 9)
Hình 1.3 Các  đ i t ng g i thông  đ i p cho nhau - CoreJava : Lập trình hướng đối tượng
Hình 1.3 Các đ i t ng g i thông đ i p cho nhau (Trang 12)
Hình 1.4 Tính th a k - CoreJava : Lập trình hướng đối tượng
Hình 1.4 Tính th a k (Trang 18)
Hình  nh - CoreJava : Lập trình hướng đối tượng
nh nh (Trang 19)
w