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

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

24 226 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 = = = [...]... 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

w