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

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

24 336 0

Đ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

Định dạng
Số trang 24
Dung lượng 202,09 KB

Nội dung

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 = = = [...]... c u thì ng i s d ng s th a k nh ng l p ó t om 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... n d ch thành nh ng l i g i 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... 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... a Ph ng pháp h ng it 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 cách úng n ph ng pháp này s c i ti n vi c duy trì, vi c tái s d ng và vi c ánh giá ph n m m Nh ng i m thu n l i c a ph ng pháp h ng it ng là: Ph ng pháp này ti n hành ti n trình phân tích, thi t k và... ‘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’... 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... 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 Tóm t t bài h c L p trình h ng i t ng là m t cách t duy m i gi i quy t v n v i máy vi tính Thay vì n l c a v n vào trong khuôn kh quen thu c v i máy vi tính, ph ng pháp h ng i t ng tìm ki m m t gi i pháp toàn v n cho m t v n S tr u t ng hóa d li u là ti n trình xác nh và nhóm các thu... ph ng là m t tr ng h p c a m t l p nh ngh a m t th c th , còn Ti n trình hi n th c hóa m t Ti n trình h y b m t ng th c it it ng ng it ng là th c th hi n th c c g i là Thi t l p (Construction) c g i là H y (Destruction) Tính b n v ng là kh n ng l u tr d li u c a m t t n t i c a i t ng ó it ng v t quá th i gian Vi c óng gói là ti n trình che gi u vi c th c thi chi ti t c a m t v i ng i s d ng i t ng... 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 s d ng i t ng... 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 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, . 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. 1. 11 Nhng thun li 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

Ngày đăng: 23/03/2014, 08:20

w