Tài liệu CoreJava phần 1 ppt

24 226 0
Tài liệu CoreJava phần 1 ppt

Đ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

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 Thit lp (Construction) và Hy (Destruction).  nh ngha tính Bn vng (Persistence).  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 thun li 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 (fucntionality) 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n 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 đ. 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 đ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. ó chính là lãnh vc 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 hn t ‘đi tng’ (object), ‘d liu’ (data) và ‘phng 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 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 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. 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 hn t 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 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: Phng pháp Top-Down OOP 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 trng, và mt phòng hp ln. Chúng ta s thit k các tng lu, các phòng và phòng hp. Chúng ta s xây dng mt khách sn vi 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 Phòng Nhân s Phòng K toán Phòng Kinh doanh Hình 1.1 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à:  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 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 nh ngha S tru tng hóa d liu là tin 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 p hát trin. 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 thun li ca vic Tru tng hóa Nhng thun li 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 đòi hi.  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 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 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. 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 N h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 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. 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 kh 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 mu thc đ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 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’. 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). nh ngha Mt đi tng là mt trng hp ca mt lp. 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à:  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. 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. Con ngi Tên: Jack Tui: 28 Trng lng: 65 kgs Hành đng: i N ói Suy ngh Xe hi Kiu: Ferrari Màu:  N m: 1995 Hành đng: Khi đng N g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 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 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 trng hp (đ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: nh ngha Mt thuc tính là mt đc tính mô t mt đi tng. Các thuc tính ca lp Con ngi Tên Chiu cao Màu tóc i tng đc to t lp Con ngi Mark 6 ft. 1 in. Blac k = = = [...]... Hình 1. 5: L p ‘Hình th ’ và các l p con Hình trên cho th y r ng ‘V ’ là m t ph ‘Hình th ’ Tuy nhiên, ph ng th c V êlip ng th c c chia s gi a các l p con c a l p c ng d ng cho hình h p s khác v i hình 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... các thu c tính và các ph 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 thu c tính c n thi t cho m t nhóm các i t ng c thù nh ngh a t t ng th c ng kh thi và các 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 Các thu c tính và các ph ng th c có th c truy c p ch khi m t m tl p c t o ra ng th c kh thi i t ng d... ‘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 Côn trùng ng v t H u nh Con ng i Khác con ng Bò sát L ng c 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’... hàm trong m t ch ng trình M cl ng? Phòng Kinh doanh Phòng K toán $2000 Hình 1. 3 Các it 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... 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 nh p h c Chú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 ng t 1. 6.2 H y Khi m t it 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 t i m t khi nó không còn c n thi t cho m t it ng t n nh ngh a Hàm H y là m t ph ng th c c bi t c dùng h yb m t it... 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á... 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 Tên a ch i m môn 1 i m môn 2 Nh p tên Nh p a ch Nh p i m Tính t ng i m L p Nhân viên Tên a ch L ng Ch c v Nh p tên Nh p a ch Nh p ch c v Tính l ng L p Khách hàng Tên a ch Ki u xe ã... 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 iv im t it 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... 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 ph ng th c thi t y u Thông th ng, các c òi h i b i ng nh nh ng thu c tính và nh ng i t ng s d ng nh ng thu c tính và nh ng ph i... 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 ó là m t giá tr ó là m t giá tr c c x lý theo m t trong nh ng cách sau: c tính toán - Ch ng h n, 15 ngày k t ngày t hàng 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 . trên. Bng 1. 1 Mt ví d v hai phng pháp gii quyt OOP và Structured Phòng Nhân s Phòng K toán Phòng Kinh doanh Hình 1. 1 1. 2 Tru tng. Ferrari Màu:  N m: 19 95 Hành đng: Khi đng N g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 1. 4 .1 Thuc tính Chúng

Ngày đăng: 19/01/2014, 17:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan