intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

GIÁO TRÌNH VỀ JAVA CƠ BẢN

Chia sẻ: Phạm Quốc Nguyên | Ngày: | Loại File: PDF | Số trang:235

174
lượt xem
62
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đây là bộ tài liệu Core Java rất hay, có 10 chương tất cả viết rõ ràng và dễ hiểu, tiếng Việt hoàn toàn, rất thích hợp cho những bạn mới làm quen với Java. Chương 1. Lập trình hướng đối tượng Chương 2. Giới thiệu về Java Chương 3. Nền tảng của ngôn ngữ Java Chương 4. Các gói & Giao diện Chương 5. AWT Chương 6. Applets Chương 7. xử lý ngoại lệ Chương 8. Đa tuyến Chương 9. Luồng I/O Chương 10. Thực thi bảo mật...

Chủ đề:
Lưu

Nội dung Text: GIÁO TRÌNH VỀ JAVA CƠ BẢN

  1. Chương 1 L P TRÌNH HƯ NG ð I TƯ NG M c tiêu K t thúc chương, h c viên có th : ð nh nghĩa L p trình hư ng ð i tư ng (Object-oriented Programming). Nh n th c v Tr u tư ng hóa D li u (Data Abstraction). ð nh nghĩa m t L p (Class). ð nh nghĩa m t ð i tư ng (Object). Nh n th c ñư c s khác bi t gi a L p và ð i tư ng. Nh n th c ñư c s c n thi t ñ i v i phương th c Thi t l p (Construction) và H y (Destruction). ð nh nghĩa tính B n v ng (Persistence). ð nh nghĩa v tính ñóng gói d li u (Data Encapsulation) Hi u bi t v tính Th a k (Inheritance). ð nh nghĩa tính ða hình (Polymorphism). Li t kê nh ng ưu ñi m c a phương pháp hư ng ð i tư ng. 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 ñ i tư ng s d dàng hơn. K thu t l p trình hư ng ñ i tư ng c i ti n vi c phát tri n các h th ng ph n m m. K thu t y ñ cao nhân t ch c năng (functionality) và các m i quan h d li u. OOP là phương th c tư duy m i ñ gi i quy t v n ñ b ng máy tính. ð ñ t k t qu , l p trình viên ph i n m v n ñ thành m t th c th quen thu c v i máy tính. Cách ti p c n hư ng ñ i tư ng cung c p m t gi i pháp toàn v n ñ gi i quy t v n ñ . 1
  2. 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. 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 th c ti n. Bư c th nh t trong phương pháp 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. ðó chính là vai trò c a k thu t hư ng ñ i tư ng. Chúng ta s d ng k thu t hư ng ñ i tư ng ñ ánh x nh ng th c th chúng ta g p ph i trong ñ i s ng th c thành nh ng th c th tương t trong máy tính. Phát tri n ph n m m theo k thu t l p trình hư ng ñ i tư ng có kh năng gi m thi u s l n l n thư ng x y ra gi a h th ng và lĩnh v c ng d ng. L p trình hư ng ñ i tư ng ñ c p ñ n d li u và th t c x lý d li u theo quan ñi m là m t ñ i tư ng duy nh t. L p trình hư ng ñ i tư ng xem xét d li u như là m t th c th hay là m t ñơn v ñ c l p, v i b n ch t riêng và nh ng ñ c tính c a th c th y. Bây gi chúng ta hãy kh o sát nh ng thu t ng ‘ñ i tư ng’ (object), ‘d li u’ (data) và ‘phương th c’ (method). 2
  3. 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 giao 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 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 r ng các ñ i tư ng là h u d ng trong vi c phân c p và t ch c d li u. Hình 1.1 Minh h a c u trúc c a m t cơ quan ñi n hình. Phòng Nhân Phòng K toán s Phòng Kinh doanh Hình 1.1 Khái ni m v ñ i tư ng có th ñư c m r ng ñ n h u h t các lãnh v c ñ i s ng, và hơn n a, ñ n th gi i l p trình. B t kỳ ng d ng nào ñ u có th ñư c ñ nh nghĩa theo thu t ng th c th ho c ñ i tư ng ñ t o ra ti n trình x lý mô ph ng theo ti n trình x lý mà con ngư i nghĩ ra. Phương pháp gi i quy t ‘top-down’ (t trên xu ng) cũng còn ñư c g i là ‘l p trình hư ng c u trúc’ (structured programming). Nó xác ñ nh nh ng ch c năng chính c a m t chương trình và nh ng ch c năng này ñư c phân thành nh ng ñơn v nh hơn cho ñ n m c ñ th p nh t. B ng k thu t này, các 3
  4. 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 ñ th c t . ð làm ñư c vi c này, phương pháp 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: Phương pháp Top-Down OOP Chúng ta s xây d ng m t khách Chúng ta s xây d ng m t tòa nhà 10 t ng s n. v i nh ng dãy phòng trung bình, sang tr ng, và m t phòng h p l n. Chúng ta s thi t k các t ng l u, Chúng ta s xây d ng m t khách s n v i các phòng và phòng h p. nh ng thành ph n trên. B ng 1.1 M t ví d v hai phương pháp gi i quy t OOP và Structured 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 c a khách hàng. M t vài ñ c tính g n k t v i khách hàng là: Tên. ð a ch . Tu i. Chi u cao. Màu tóc. 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à: 4
  5. 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 c n li t kê nh ng hành ñ ng ñư c th c hi n. Công vi c xu t hóa ñơn ñòi h i nh ng hành ñ ng sau: Nh p tên c a khách hàng. Nh p ñ a ch c a khách hàng. Nh p ki u xe. Nh p tên c a nhân viên bán xe. Xu t hóa ñơn v i ñ nh d ng ñòi h i. 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 m t hóa ñơn: Các thu c tính Tên c a khách hàng ð a ch c a khách hàng Ki u xe bán Nhân viên bán xe Các hành ñ ng Nh p tên Nh p ñ a ch Nh p ki u xe Nh p tên nhân viên bán xe Xu t hóa ñơn 5
  6. ð nh nghĩa S tr u tư ng hóa d li u là quá trình xác ñ nh và nhóm các thu c tính và các hành ñ ng liên quan ñ n m t th c th c th , xét trong m i tương quan v i ng d ng ñang phát tri 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. Nh p s lư ng xe bán ñư c. Tính ti n hoa h ng ki m ñư c. Nh ng thu c tính Tên S lư ng xe bán ñư c Ti n hoa h ng Nh ng hành ñ ng Nh p tên Nh p s lư ng xe bán ñư c Tính ti n hoa h ng Như th , vi c tr u tư ng hóa d li u tra ñ t ra câu h i ‘ðâu là nh ng thu c tính và nh ng hành ñ ng c n thi t cho m t v n ñ ñ t ra?’ 1.2.1 Nh ng ưu ñi m c a vi c Tr u tư ng hóa Nh ng ưu ñi m c a vi c Tr u tư ng hóa là: T p trung vào v n ñ . 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. 6
  7. 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 và các thu c tính c a m t th c th . V n ñ m u ch t là t p trung ñ n nh ng hành vi c t y u và áp d ng chúng trong ng d ng. Ch ng h n như khách hàng ho c nhân viên bán hàng cũng có th th c hi n nh ng hành ñ ng sau: Ngư i y ñi l i. Ngư i y nói chuy n. Tuy nhiên, nh ng hành ñ ng này không liên quan ñ n ng d ng. Vi c tr u tư ng hóa d li u s lo i b chúng. 1.3 L p (Class) Trong ng d ng mua bán xe, chúng ta ñã xác ñ nh các thu c tính và các hành ñ ng c n có ñ xu t m t hóa ñơn cho m t khách hàng. Các hành ñ ng và các thu c tính này là chung cho m i khách hàng mua xe. Ví th , chúng có th ñư c nhóm l i trong m t th c th ñơn nh t g i là m t ‘l p’. Hãy kh o sát l p có tên là ‘khách hàng’ dư i ñây. L p này bao g m m i thu c tính và hành ñ ng ñòi h i ñ i v i m t khách hàng. L p Khách hàng Tên khách hàng ð a ch khách hàng Ki u xe ñư c bán Nhân viên bán xe Nh p tên Nh p ñ a ch Nh p ki u xe ñư c bán Nh p tên nhân viên bán xe Xu t hóa ñơn ð nh nghĩa M t l p ñ nh nghĩa m t th c th theo nh ng thu c tính và nh ng hành ñ ng chung. Ho c Nh ng thu c tính và nh ng hành ñ ng chung c a m t th c th ñư c nhóm l i ñ t o nên m t ñơn v duy nh t g i là m t l p. Ho c 7
  8. M t l p là m t s xác ñ nh c p ch ng lo i c a các th c th gi ng nhau. 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 Nhân viên bán hàng Tên S lư ng xe bán ñư c Ti n hoa h ng Nh p tên Nh p s lư ng xe bán ñư c Tính ti n hoa h ng 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 hơi. 1.4 ð i tư ng (Object) M t l p là m t nguyên m u phác h a nh ng thu c tính và nh ng hành ñ ng có th c a m t th c th . ð có th s d ng th c th mà l p ñ nh nghĩa, chúng ta ph i t o m t ‘ñ i tư ng’ t l p ñó. L p là m t khái ni m, còn ñ i tư ng là m t th hi n ñư c ñ nh nghĩa b i l p. Hãy kh o sát l p ‘Khách hàng’ ñư c ñ nh nghĩa trên. L p này ñ nh nghĩa m i thu c tính và hành ñ ng g n li n v i m t khách hàng. Khi m t ngư i mua m t xe hơi m t c a hàng, c a hàng y có m t khách hàng m i. Vào th i ñi m y, m t ñ i tư ng gi ng như l p ‘Khách hàng’ ñư c t o 8
  9. ra. ð i tư ng này 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’. ð nh nghĩa: M t ñ i tư ng là m t trư ng h p c a m t l p. 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õ: Tình tr ng (state). Thái ñ (behavior). Chân tính (identity). Hình 1.2 trình bày hai ñ i tư ng. Con ngư i Xe hơi Tên: Jack Ki u: Ferrari Tu i: 28 Màu: ð Tr ng lư ng: 65 kgs Năm: 1995 Hành ñ ng: Hành ñ ng: ði Kh i ñ ng Nói Ngưng Suy nghĩ Chuy n ñ ng Hình 1.2: M t ñ i tư ng Con ngư i và m t ñ i tư ng Xe hơi 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à: Tên. Tu i. Tr ng lư ng. Nh ng thu c tính c a m t ñ i tư ng ‘Xe hơi’ s là: Màu s c. Ki u xe. Năm. 9
  10. M t ñ i tư ng cũng th c hi n m t s hành ñ ng. M t xe hơi có kh năng th c hi n nh ng hành ñ ng sau: Kh i ñ ng. Ngưng. Chuy n ñ ng. ð chuy n ñ i gi a các ñ i tư ng l p trình và các ñ i tư ng ñ i th c, c n ph i k t h p các thu c tính và các hành ñ ng c a m t ñ i tư ng. 1.4.1 Thu c tính Chúng ta xác ñ nh các thu c tính và các hành ñ ng ñ ñ nh nghĩa m t l p. M t khi các thu c tính ñư c gán cho các giá tr , chúng mô t m t ñ i tư ng. Hãy kh o sát l p sau: Các thu c tính c a l p Khách hàng Tên c a khách hàng ð a ch c a khách hàng Ki u xe ñư c bán Nhân viên ñã bán xe Khi thu c tính ‘Tên’ ñư c gán cho giá tr ‘Mark’ thì nó mô t m t ñ i tư ng xác ñ nh ñư c t o t l p ‘Khách hàng’. ð nh nghĩa M t thu c tính là m t ñ c tính mô t m t ñ i tư 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. ð có th lưu gi nh ng chi ti t c a m t khách hàng, m t th hi n(ñ i tư ng) c a l p ‘Khách hàng’ ph i ñư c t o ra. Các thu c tính c a m t ñ i tư ng hi n h u ch khi ñ i tư ng y ñư c t o ra. M i ñ i tư ng c a m t l p ph i có cùng các thu c tính. Kh o sát ví d sau: Các thu c tính c a l p Con ngư i ð i tư ng ñư c t o t l p Con ngư i Tên = Mark Chi u cao 6 ft. 1 in. = Màu tóc Black = 10
  11. 1.4.2 Ho t ñ ng (Operation) Các hành ñ ng kh thi, như ñư c ñ nh nghĩa trong m t l p, ñư c g i là ‘các ho t ñ ng’. ð nh nghĩa M t ho t ñ ng là m t d ch v ñư c yêu c u c a m t ñ i tư ng. Các ho t ñ ng xác ñ nh các hành ñ ng c n ph it th c hi n c a m t ñ i tư ng ñư c t o ra t m t l p. Ch ng h n như chúng ta không th yêu c u m t ho t ñ ng ‘Mua m t xe hơi khác’ c a m t ñ i tư ng ñư c t o ra t l p ‘Khách hàng’. M t l p ch là m t nguyên m u. Vì th , trong m t l p m t ho t ñ ng ch ñư c ñ nh nghĩa. Còn vi c áp d ng ho t ñ ng y ch x y ra nơi các ñ i tư ng riêng r . Ch ng h n như ho t ñ ng ‘Nh p Tên’ mà l p “Khách hàng’ ñ nh nghĩa có th ñư c th c hi n nơi m t ñ i tư ng nào ñó. T p h p các ho t ñ ng ñư c yêu c u cho t t c các ñ i tư ng trong cùng m t l p là như nhau. 1.4.3 Phương th c (Method) Các ho t ñ ng ñ nh nghĩa các hành ñ ng kh thi có th ñư c yêu c u c a m t ñ i tư ng. M t phương th c là s th c thi th c t c a m t ho t ñ ng. ð nh nghĩa Phương th c là s xác ñ nh v cách th c th c thi m t ho t ñ ng ñư c yêu c u. Các phương th c xác ñ nh cách th c thao tác trên các d li u c a m t ñ i tư ng. B i vì 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 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 nơi ho t ñ ng này ñư c ñ nh nghĩa. 11
  12. ð nh nghĩa M t thông ñi p là m t l i yêu c u m t ho t ñ ng. 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. M c lương? Phòng Phòng Kinh K toán doanh $2000 Hình 1.3 Các ñ i tư ng g i thông ñi p cho nhau 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. 1.4.5 S ki n (Event) M t s ki n là m t s vi c x y ra cho m t ñ i tư ng t i m t th i ñi m. ð ñáp ng l i s ki n y, ñ i tư ng s th c hi n m t ho c nhi u phương th c. Nói cách khác, m t s ki n là m t tác nhân mà ñ i tư ng này gây ra cho m t ñ i tư ng khác. Ch ng h n như click chu t trái trên m t nút. ð hi u rõ hơn các s ki n, hãy kh o sát ví d sau t th c t : ‘M t ngư i s thét lên khi b th c b ng m t v t nh n’. ‘Th c’ là s ki n gây ra s ph n ng là ‘thét lên’. Trong máy tính, m t ngư i s d ng nh n m t nút trên bàn phím là m t s ki n chung. S ph n h i ñ i v i s ki n này là vi c hi n th ký t tương ng trên màn 12
  13. hình. 1.5 L p và ð i tư ng Có m t s khác bi t th c s gi a m t l p và m t ñ i tư ng. C n nh n th c rõ s khác bi t này. M t l p ñ nh nghĩa m t th c th , trong khi ñó m t ñ i tư ng là m t trư ng h p c a th c th y. ð i tư ng là m t mô hình th c, trong khi l p là m t mô hình khái ni m - ñ nh nghĩa t t c các thu c tính và các phương th c c n thi t c a m t ñ i tư ng. T t c các ñ i tư ng thu c v cùng m t l p có cùng các thu c tính và các phương th c. M t l p là m t nguyên m u c a m t ñ i tư ng. Nó xác ñ nh các hành ñ ng kh thi và các thu c tính c n thi t cho m t nhóm các ñ i tư ng c th . 1.6 Thi t l p (Construction) và H y (Destruction) 1.6.1 Thi t l p M t l p ch cung c p nh ng ñ nh nghĩa v các thu c tính và các phương th c kh thi. Các thu c tính và các phương th c có th ñư c truy c p ch khi m t ñ i tư ng d a trên m t l p ñư c t o ra. Khi m t ñ i tư ng m i ñư c t o, các thu c tính c a nó tr nên hi n th c và có th ñư c gán giá tr . Tương t , các phương th c ñã ñư c ñ nh nghĩa cũng ñư c áp 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 n u c n. M i m t l p có m t hàm thi t l p. Kh o sát l i trư ng h p c a hàng bán xe hơi. Ngay t lúc ñ u ch ñ nh nghĩa các l p. Cho ñ n khi m t khách hàng mua m t xe hơi t i c a hàng thì m t ñ i tư ng m i gi ng như l p ‘Khách hàng’ m i ñư c t o. Khi ñ i tư ng này ñư c t o, m t s kho ng tr ng b nh ñư c c p phát cho nh ng thu c tính c a nó ñ lưu tr các giá tr ñư c gán cho các thu c tính y (‘Tên’, ‘ð a ch ’ …). Hàm thi t l p th c hi n vi c c p phát này. Vào lúc này, m i thu c tính và phương th c c a ñ i tư ng s n sàng ñ s d ng. 13
  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à: X p l p cho h c sinh y. Ghi tên h c sinh y vào danh sách. X p ch ng i. ðây là nh ng hành ñ ng ñ ng lo t ñư c th c hi n ngay lúc b t ñ u nh p h c. Chúng tương t v i nh ng hành ñ ng mà hàm thi t l p c a m t ñ i tư ng th c hi n. 1.6.2 H y 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. ð nh nghĩa Hàm H y là m t phương th c ñ c bi t ñư c dùng ñ h y b m t ñ i tư ng. Ti n trình H y tiêu h y m t ñ i tư ng và gi i phóng kho ng tr ng b nh mà hàm thi t l p ñã c p phát cho nó. Hàm H y cũng tri t tiêu kh năng truy c p ñ n ñ i tư ng y. 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. 1.7 Tính B n v ng (Persistence) Hãy kh o sát trư ng h p bán xe hơi. Nh ng chi ti t c a khách hàng ñư c lưu tr ngay khi xe hơi ñã ñư c phân ph i.Vi c duy trì d li u v n c n thi t cho ñ n khi d li u ñư c ch nh s a ho c h y b chính th c. 14
  15. ð 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. 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. 1.8 Tính ðóng gói d li u Ti n trình tr u tư ng hóa d li u h tr cho vi c xác ñ nh nh ng thu c tính và nh ng phương th c thi t y u. Thông thư ng, các ñ i tư ng s d ng nh ng thu c tính và nh ng phương th c không ñư c yêu c u b i ngư i s d ng ñ i tư ng. Ch ng h n như trong trư ng h p l p ‘Khách hàng’. L p y có m t phương th c xu t hóa ñơ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). 15
  16. ð nh nghĩa ðóng gói là ti n trình che gi u vi c th c thi nh ng chi ti t c a m t ñ i tư ng ñ i v i ngư i s d ng ñ i tư ng y. 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. Ưu ñi m 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 thì m i nhìn 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: L p Sinh viên L p Nhân viên L p Khách hàng Tên Tên Tên ð a ch ð a ch ð a ch ði m môn 1 Lương Ki u xe ñã bán ði m môn 2 Ch c v Nh p tên Nh p tên Nh p tên Nh p ñ a ch Nh p ñ a ch Nh p ñ a ch Nh p ki u xe Nh p ñi m Nh p ch c v Xu t hóa ñơn Tính t ng ñi m Tính lương Trong t t c ba l p, chúng ta th y có m t vài thu c tính và ho t ñ ng chung. Chúng ta mu n nhóm nh ng thu c tính và nh ng ho t ñ ng y l i, và ñ nh nghĩa chúng trong m t l p ‘Ngư i’. L p Ngư i Tên ð a ch 16
  17. Nh p tên Nh p ñ a ch Ba l p ‘Sinh viên’, ‘Nhân viên’ và ‘Khách hàng’ có nh ng thành ph n gi ng 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. L p Sinh viên L p Nhân viên L p Khách hàng ði m môn 1 Lương Ki u xe bán ñư c ði m môn 2 Ch c v Nh p ki u xe Nh p ñi m Nh p ch c v Xu t hóa ñơn tính t ng ñi m Tính lương 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’. ð nh nghĩa: Tính th a k cho phép m t l p chia s các thu c tính và các phương th c ñư c ñ nh nghĩa trong m t ho c nhi u l p khác. 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 c a riêng nó. Trong ví d này, l p ‘Khách hàng’ ñư c g i là ‘l p con’ (subclass). ð nh nghĩa: L p th a hư ng t m t l p khác ñư c g i là Subclass. Trong ví d trên, l p ‘Ngư i’ ñư c coi là ‘l p trên’ (superclass). ð nh nghĩa: M t Superclass là m t l p mà các ñ c tính c a nó ñư c m t l p khác th a hư ng. 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. 17
  18. 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ũ’. Các ñ ng v t Côn trùng H u nhũ Bò sát Lư ng cư Con ngư i Khác con ngư i Hình 1.4 Tính th a k 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 g i là ‘th a k ñơn’ (single inheritance). Trong ‘ña th a k ’, m t l p con th a k t hai hay nhi u l p cha. Hãy kh o sát ví d sau: L p ðư ng th ng L p ðư ng tròn L p Hình nh L p V m t hình Kh i ñi m Bán kính ði m t n cùng Tâm ñi m Hình nh Nh n hình v V ñư ng th ng V ñư ng tròn V hình nh V hình + + = Trong hình trên, chúng ta ñã xây d ng m t l p ‘V m t hình’, l p này th a hư ng ba l p: ‘ðư ng th ng’, ‘ðư ng tròn’, ‘Hình nh’. Như th l p ‘V m t hình’ k t h p ch c năng c a ba l p trên thêm vào ch c năng ñư c ñ nh nghĩa bên trong nó. L p ‘V m t hình’ là m t ví d v tính ña th a k . Có th s d ng tính ña th a k ñ xây d ng m t l p m i, l p này d n xu t ch c năng c a nó t m t vài l p khác. Như th , xét theo góc c nh c a ngư i s d ng l p m i này, ch c n m t l p mà cung c p t t c các ch c năng. Như v y, h 18
  19. không c n ph i s d ng nhi u ñ i tư ng khác nhau. S thu n l i quan tr ng nh t c a tính th a k là nó thúc ñ y vi c tái s d ng mã chương trình. Trong ví d trên, chúng ta có ba l p ‘ðư ng th ng’, ‘ðư ng tròn’ và ‘Hình nh’. Gi thi t r ng ba ngư i khác nhau xây d ng ba l p này riêng bi t. Bây gi , ngư i s d ng c n xây d ng m t l p ñ v ñư ng th ng, v ñư ng tròn cũng như hi n th hình nh. Vì th h tìm ki m xem có l p nào ñáp ng m t ho c t t c các yêu c u ñó. N u có nh ng l p cung c p ch c năng th a yêu c u thì ngư i s d ng s th a k nh ng l p ñó ñ t o m t l p m i. Gi ñây ngư i s d ng ch còn ph i vi t mã chương trình cho nh ng ñ c tính chưa có sau ti n trình th a k . Ngư i s d ng có th s d ng chính ba l p trên. Tuy nhiên, s th a k cung c p m t bó nh ng ch c năng h n ñ n trong m t l p. 1.10 Tính ða hình Trong m t chương trình có c u trúc (a structured program), m t phương th c ch ng d ng cho m t ñ i tư ng. Ch ng h n xét toán t ‘C ng’. Toán t này ch tính t ng c a hai s nguyên. Khi truy n hai giá tr 2 và 3 thì nó hi n th 5. Chúng ta không th có m t lo i toán t ‘C ng’ ñ tính t ng c a hai giá tr văn b n (text) ‘Hello!’ và ‘How are you?’ ñ có ñư c chu i văn b n k t qu ‘Hello! How are you?’ Trong h th ng hư ng ñ i tư ng thì tình hu ng mô t trên là có th . ð nh nghĩa Tính ña hình cho phép m t phương th c có các cách th hi n khác nhau trên nhi u lo i ñ i tư ng khác nhau. V i tính ña hình, n u cùng m t phương th c ng d ng cho các ñ i tư ng thu c các l p khác nhau thì nó ñưa ñ n nh ng k t qu khác nhau. B n ch t c a s vi c chính là phương th c này bao g m cùng m t s lư ng các tham s . Tính ña hình là m t trong nh ng ñ c tính quan tr ng nh t c a h th ng hư ng ñ i tư ng. M t ví d khác là phương th c hi n th . Tùy thu c vào ñ i tư ng tác ñ ng, phương th c y có th hi n th m t chu i, ho c v m t ñư ng th ng, ho c hi n th m t hình nh. Hãy kh o sát hình sau: L p: Hình th Các l p con Các phương th c: V Di chuy n Kh i t o 19 Hình 1.5: L p ‘Hình th ’ và các l p con
  20. Hình trên cho th y r ng ‘V ’ là m t phương th c ñư c chia s gi a các l p con c a l p ‘Hình th ’. Tuy nhiên, phương th c V ñư c ng d ng cho hình h p s khác v i hình êlip. Tính ña hình h tr tính ñóng gói. Xét trên m c ñ ngư i s d ng, h ch c n m t phương th c ‘V ’ c a l p ‘Hình th ’. Còn cách th c mà phương th c ‘V ’ ñư c th c thi cho các trư ng h p khác nhau thì h không c n bi t. 1.11 Nh ng u ñi m c a Phương pháp hư ng ð i tư ng L p trình hư ng ñ i tư ng ñòi h i m t s chuy n hư ng quan tr ng trong tư duy c a các l p trình viên. Phương pháp này làm cho t c ñ phát tri n các chương trình m i nhanh hơn, và n u ñư c s d ng ñúng ñ n phương pháp này s c i ti n vi c duy trì (maintenance), vi c tái s d ng (reusability) và vi c ñánh giá (revision) ph n m m. Nh ng ñi m ưu ñi m c a phương pháp hư ng ñ i tư ng là: Phương pháp này ti n hành ti n trình phân tích, thi t k và phát tri n m t v n ñ trong khuôn kh nh ng khái ni m và thu t ng thu c lĩnh v c ng d ng. Vì th , có m t s tương h p cao nh t gi a vi c phát tri n ng d ng và v n ñ th c t . Ch ng h n như trong trư ng h p bán xe hơi, m i giai ño n c a vi c phân tích, thi t k và phát tri n ng d ng, luôn luôn có ti ng nói c a khách hàng, c a nhân viên bán hàng … Phương pháp này h tr vi c chia s bên trong m t ng d ng. Phương pháp này h tr vi c tái s d ng các ñ i tư ng khi các ng d ng m i ñư c phát tri n. ðây là ưu ñi m r t quan tr ng xét trong khía c nh gi m thi u chi phí v lâu v dài. Ch ng h n như hành vi c a khách hàng m t khi ñư c mô hình hóa trong m t ng d ng thì có th ñư c s d ng l i cho nh ng ng d ng liên h có bao g m mô hình khách hàng. Phương pháp này gi m thi u các l i và nh ng v n ñ liên quan ñ n vi c b o trì ng d ng do kh năng tái s d ng các ñ i tư ng. Phương pháp này tăng t c ti n trình thi t k và phát tri n, m t l n n a ñây là k t qu c a vi c tái s d ng các ñ i tư ng. 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2