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

Ngôn ngữ lập trình Visual Basic 2010 - 2011 - Tập 2: Phần 2

Chia sẻ: Le Na | Ngày: | Loại File: PDF | Số trang:160

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

Phần 2 Tài liệu Kỹ thuật và Thủ thuật lập trình Visual Basic 2010 - 2011 - Tập 2 có nội dung trình bày về cơ sở dữ liệu và lập trình web như khởi động vói ADO.NET, biểu diễn dữ liệu sử dụng Control DataGridView, tạo các Website và trang Web bằng cách sử dụng Visual Web Developer và ASP.NET và một số nội dung khác.

Chủ đề:
Lưu

Nội dung Text: Ngôn ngữ lập trình Visual Basic 2010 - 2011 - Tập 2: Phần 2

  1. 144 C h ư ơ n g 16: Thừa kế các form v à tạo các c la s s c ơ sỏ Thừa kế các form và tạo cỏc class cơ sở Sau k h i hoàn th àn h chương này, bạn s ẽ có thê; B Stc dụng Inheritance Picker đ ể kết nhập các /o rm h iện có vào các project M Tạo các class cơ sở riêng của bạn với các thiiộc linh và các phương thức tùy ỷ. Ết D ân xiiấ tcá ccla ss mới rừcác class cơ sở bảng việc sứ dụng câu ìộnh ỉnherits. ộ t kỹ n ăn g quan trọ n g cho hầu n h ư t ấ t cả n h à p h á t triển M p h ầ n m ềm chuyên nghiệp h iện nay là k h ả n ăn g hiểu và tậ n dụng các kỹ th u ậ t lập trìn h hướng đối tượng (OOP). Các kỹ th u ậ t được k ế t hợp với OOP đã đ ạ t được sự tă n g cường m ạ n h lên tro n g phiên b ả n g ần đây của M icrosoít Visual Basic bao gồm các tín h n ã n g hỗ trợ sự thừ a k ế (inheritance), m ột cơ cấu n h ằm cho phép m ộ t class th u n h ận giao diện và các đặc điểm h àn h vi của m ột class khác. Sự thừ a k ế tro n g Visual Basic 2010 được làm cho dễ d àn g b ằn g cả ngôn ngữ và các công cụ Visual Basic bên tro n g Im teg rated D evelopm ent Envi-
  2. C h ư đ n g 16: Thừa kê' các torm và tạo các class cd sò________________________ 1 4 5 ro n m e n t (IDE). Điều này có nghĩa là b ạn có th ể xây dựng m ột form trong môi trường p h á t triể n và chuyển các đặc điểm và chức n ăn g của nó đến các form khác. N goài ra b ạn có th ể xây dựng các class riên g của b ạn và thừa k ế các thuộc tín h , phương thức và sự kiện từ chúng, T ro n g chương n ày b ạn sẽ th ử nghiệm với cả h ai loại th ừ a kế. B ạn sẽ học cách tích hợp các form h iện có vào các project b ằn g việc sử dụng hộp th o ạ i In h e rita n c e P icker vôn là m ột p h ần của M icrosoft V isual Studio 2010 và b ạn sẽ học cách tạo các class riêng của b ạn và d ẫn x u ất các class mới từ chúng b ằn g việc sử dụng câu lện h In h e rits. Với nhữ ng kỹ n ăn g này b ạ n sẽ có th ể tậ n dụng nhiều form và các thường tr ìn h v iế t m ã m à b ạn đã p h á t triể n , làm cho việc lập trìn h Visual B asic trở th à n h m ộ t nổ lực n h a n h hơn v à lin h h o ạ t hơn. N hững cải tiế n n ày sẽ giúp b ạn th iế t k ế nhữ ng giao diện người dùng h ấp d ẫn m ột cách n h a n h chóng và sẽ mở rộng công việc m à b ạn đả làm trong các project lập trìn h khác. Thừa kế một form bằng việc sử dụng Inheritance Pỉcker T rong cú p h áp OOP, sự thừa k ế (inheritance) có n g h ĩa là làm cho một class n h ậ n các đối tượng, thuộc tín h , phương thức và nhữ ng thuộc tín h k h ác của m ột class khác. N hư được dề cập tro n g p h ần "thêm các form mới vào m ột chương trìn h " tro n g chương 14, Visual Basic đi qua tiế n trìn h này thư ờ ng xuyên khi nó tạo m ột form mới tro n g mỏi trường p h á t triển . Form đ ầ u t i é n t r o n g m ộ t p r o je c t ( F o r m l ) p h ụ th u ổ c v à o c la s s System .W indow s.Form s.Form cho đ ịnh n g h ĩa của nó và các giá trị mặc định. Thực t ế class này được n h ận dạng tro n g cửa sổ P ro p erties k h i bạn chọn m ột form tro n g D esigner n h ư dược m inh họa tro n g ầ n h chụp m àn h ìn h dưới đây: P ro p íitie ỉ - n X F o rm ỉ $y5t«m.Wíndow5.Forms,Fofm ẳ lỊiiỉ Ị ; M ặc đù b ạ n đã không n h ận ra, nhưng b ạn đã sử dụng sự th ừ a k ế trong suô’t thờ i gian để định n g h ĩa các form W indows m à b ạn đã sử dụng các ứng dụng V isual Basic. M ặc dù các form h iện có cũng có th ể được th ừ a k ế b ằn g việc sử dụng m ã chương trìn h , nhưng những người th iế t k ế Visual Studio đã xem tác vụ n ày quan trọ n g đến nỗi họ đă th iế t k ế m ột hộp thoại đặc b iệ t tro n g môi trường p h á t triể n để làm dễ d àn g tiế n trìn h này. Hộp th o ạ i này được gọi là In h eritan ce Picker và nó được tru y cập th ô n g qua
  3. 1 4 6 ________________________ C h ư ờ n g 16: Thừa kê' các form và tạo các cla ss co sỏ lện h Add N ew Item trê n m enu Project. T rong bài tậ p sau đây b ạ n sẽ sử dụng In h eritan c e P icker để tạo m ột bản sao th ứ h ai của m ột hộp thoại tro n g m ột project, T h ừ a k ế m ột h ộ p t h o ạ i đ ơ n g iả n 1. Khởi động V is u a l S tu d io và tạo m ột project Visual B asic Win- dows Form s Application mới có tê n là M y F o rm I n h e r i t a n c e . 2. H iển th ị project trê n form, và sau đó sử dụng control B utton để th ê m h a i đối tượng n ú t ở cuôi form được đ ặ t cạnh nhau. 3. T hay đổi các thuộc tín h T ext của các n ú t B u tto n l và B utton2 th à n h 'OK" và "Cancel" . 4. N h ấp dôi OK để h iển th ị sự kiện B uttonl_C lick tro n g Code Editor. 5. Gõ n h ập cầu lệ n h chương trìn h sau đây: MsgBoxCYou clicked OK") 6. H iển th ị lại form, n h ấp đôi nUt Cancel và sau đó gõ n h ậ p câu lệnh chương trìn h sau đây trong th ủ tục sự k iện Button2_Click" MsgBox("You cticked Cancel") 7. H iển th ị lại form và xác lập thuộc tín h T ext của form san g "Dialog Box". Bây giờ b ạn có m ột form đơn giản m à có th ể được sử dụng làm cơ sở cho m ột hộp thoại tro n g m ột chương trìn h . Với m ột số tùy biến, bạn có th ể sử dụng form cơ sở n ày dể xử lý m ột sô' tác vụ - b ạn chỉ cần th ê m các control d àn h riên g cho các ứng dụng riên g lẻ của bạn. 8. N hâ'p n ú t S a v e A ll để lưu p ro ject và sau đó xác đ ịn h folder C :\V b lO sb s\C h a p l6 làm vị trí. Bây giờ b ạn sẽ thực h àn h th ừ a k ế form. Bước đầu tiê n tro n g tiến trìn h n ày là xây dựng hoặc biên dịch (compile) project bởi vì b ạn có th ể th ừ a k ế chỉ các form m à b ạn đã biên dịch th à n h các file .exe hoặc -dll. Mỗi lần form cơ sở được tá i biên dịch, các th a y đổi được thực h iện đôl với form cơ sở được chuyển đ ến form d ẫn x u ất (được th ừ a kế). 9. N h ấp lệ n h B u ỉld M y F o rm In h eritan ce trê n m enu Builđ. Visual B asic biên địch project và tạo m ột file .exe.
  4. C h ư ơ n g 16: Thừa kế các form và tạo các class cơ sở 147 10. N hâp lện h A d d N e w ỉte m trê n menu P roject và sau đó nhấp h ạng mục Windows Form s nằm ở p h ía b ên tr á i hộp th o ại và Inher- ited Form ở giữa hộp thoại. Hộp thoại Ađd New Item trô n g giông như được m in h họa tro n g ản h chụp m àn h ìn h dưới đây: , - ' Add S rv ỉte m • Fonn ỉnhm c « m f r i ộ n fte < n j Rrpfi>t)n9 Ccmmsn •AM ' 1 ^ C o m m d n h e rrn V .;ị Com 6f^ỉtefT m i» 3 ỉnhenud Fom Cflmm««ĨUfrn Inhtriled UiSrConvol Cerntroriỉumỉ 1 Permỉ.vb Ềi O I V is u a l Basic 2010 Express không có tem plate In h e rite d Form . N ếu bạn đ a n g m uôn n â n g cấp lên Visual Studio P ro íessio n al, điều này có th ể cu n g c ấp m ột s ố tem plate loại này. (Nói chung Professional và c ác ph iên bản full khác cù a V isual Studio cu n g c âp th ê m m ộ t sô' te m p la te hữu dụng). V ào lúc này có th ể b ạn m u ô n đơn g iản x e m lại p ro je c t m ẫu đã được đ ậ t trên C D Practice Files và k iểm tra mã. T u y n h iê n có m ột giải ph á p m à bạn có thể thử đ ể tạo bằn g lay mộl fo rm th ừ a k ế . Đ ể th ử nớ, th ê m m ộ t W in d o w s F o rm có tê n là Fo rm 2 .v b v à o p ro ject Ihay VI In h critcd Form . ớ p h ần trên cùng củ a Solution E xplorer, nh ấp nút c h u y ển đổi S ho w All Files. M ô rộng F orm 2 .v b và sau đó mở F o rm 2,D esign er.vb . T h a y đổi "Inhcr- its S y s te m .W in d o w .s .F o rm s .F o rm " th á n h " In h e r its M y _ F o rm _ In h e rita n c e .F o rm l" , N h ấ p S a v e AU, đ ó n g Fo rm 2 .D esig n e r.v b và sau đó nhấp lại S h ow All Files đ ể là m ẩn c á c file n â n g cao. V ì bạn đã thực h iện c ác bước b ằ n g thủ công, bây _______ ^ờ_bạn_c£_thểnhậy_đến_£hần tiêp theo "T ù y b iế n Form thừa kế ". Như thường lệ, Visual Stuđio liệt kê t ấ t cả tem p late m à b ạn có th ể đưa vào các project, không p h ải chỉ các tem p late liên quan đến sự thừa kế. T em p late In h e rite d F orm cho b ạ n tru y cập hộp th o ại Inheriteưice Picker.
  5. 148 C h ư ơ n g 16: Thừa kế các íorm và tạo các c la ss c ơ sỏ Bạn cũng có th ể sử dụng hộp tex t N am e ở cuối hộp th o ại để g án m ột tê n cho form thừa k ế m ặc dù nó không cần th iế t cho ví dụ n ày . Tên này sẽ xuất h iện trong Solution E xploreer và trong tê n file của form trê n đĩa. 11. N h ấp A d d để chấp n h ậ n các xác lập mặc định cho form th ừ a kẽ' mới. Visuaỉ Studio h iển th ị hộp thoại In h erìtan ce P icker n h ư được m m inh họa ô đây: P le Kt * '' ' Cn o rtN otprx lí w ~ ; ^«1 ! 1 «« Hộp th o ại n ày liệ t kê tấ t cả form th ừ a k ế trong project h iệ n hàn h . Nếu b ạ n muôn duyệt dể tìm m ột form được biên dịch khác, nh ấp n ú t Browse và định vỊ file ,dll. ________________________________________________________ N ế u b ạ n m u ôn thừa k ế m ột form vốn không ph ải là m ộ t th à n h p h ầ n c ủ a pro je c t hiện hành , form phải được biên dịch dưới d ạ n g m ộ t file .dll. 12. N hấp F o r m l tro n g hộp thoại In h eritan ce P ick er và sau đó nh ấp OK. Visual Studio tạo mục Form2.vb tro n g Solution E xplorer và h iể n th ị form th ừ a k ế tro n g D esigner. Trong ản h chụp m àn h ìn h dưới đây chú ý rằ n g form trô n g giống h ệ t n h ư cửa sổ F o rm l m à b ạ n đ ã tạo trước đó ngoại trừ h ai n ú t chứa các biểu tượng nhỏ biểu th ị rằ n g các đối tượng đến từ m ột nguồn được th ừ a kế. Có th ể khó p h ân b iệt m ột form thừa k ế với m ột form cơ sở (các biểu tượng in h eritan ce nhỏ không rõ ràn g như thế), như ng b ạ n cũng có th ể sử dụng Solution E xplorer và các tab IDE để p h â n b iệ t giữa các form.
  6. C h ư ơ n g 16: Thừa kế các form và tạo các class cơ sở 149 Fefmtnh«M A • N eft U StiAo P i 'r ĩd it V /« w ỉiro ^ v t S u iit T « > rn ^«1« r e > ( > 'A T m iỉì T « i( 'r lé iy ã-đ J , , Ằ . -•..ỉ* » » . -»> 3 ọb3 .1 »« • ! .T * r 1 li*j3 íil > ' 'íi 1 1 It>cì1rw h
  7. 150 C h ư ơ n g 16: Thừa kế các form và tạo các class cơ sở nếu b ạn sử dụng cửa sổ P roperties để tùy biến m ột form, hộp danh sách Object tro n g cửa sổ Properties hiển th ị form m à form hiện h à n h được d ẫn xuất từ đó. Sau dây là diện mạo của cửa sổ P roperties tro n g project k h i Form 2 được chọn: Propertiíi - D X Form2 Form Inhcrttondc.Porml - X ỉ 1 iĩ) :n : Bây giờ xác lập đối tượng khởi động tro n g project san g Form2. 7. N h ấp lện h M y F o rm I n h e r i t a n c e P r o p e r t i e s trê n menu Project. P roject D esigner được giới thiệu tro n g chương 14 xuất hiện. 8. T rên ta b A pplication, n h ấp hộp danh sách S t a r t u p F o r m , n hấp F o rm 2 , và sau đó đóng Prọịect D esigner b ằn g việc n h ấp n ú t C lo se trê n tab. K hông có n ú t S a v e tro n g tab Project D esigner bởi vì V isual Studio lưu các th a y đổi k h i b ạn thực h iện chúng tro n g hộp thoại, Bây giờ hãy chạy project mới. • • • • • • • Thủ thuật C hư ơng tr ì n h Form In h e r ita n c e h o à n c h ỉn h đ ư ợ c đ ă t tro n g ío ld e r C:\vbl Osbs\Chap16\Form Inheritance. 9. N h ấp n ú t S t a r t D e b u g g in g . Form th ừ a k ế mở ra như dượe m inh liọa ở đây. i ỉ òisỉog Ũ K I C è^ an 10. N h ấp OK.
  8. C h ư ơ n g 16: Thửa kế các ỉorm và tạo các class cơ sỏ 151 F orm th ừ a k ế chạy th ủ tục sự k iện m à nó dã th ừ a k ế từ F o rm l, và thủ tục sự kiện • ío r m ln h e r it a n c e |< S i b h iể n th ị th ô n g báo sau đây: Y o u c lic k e d O K OK 11. N hấp OK, và sau đó n h ấp n ú t C lic k Me! Form 2 h iển th ị th ô n g báo form th ừ a kế. N hững p điều này m in h họa là Form 2 (form th ừ a kế) có những đặc điểm riên g của nó (một n ú t Click Me! mới và m ột kích cỡ được mở rộng). Form 2 cũng sử dụng hai n ú t (OK và Cancel) đã được thừa k ế từ F o rm l và chứa m à từ P o rm l, cũng n h ư sự đại điện trực quan chính xác của các nút. Điều này có nghĩa là b ạn có th ể k h ai th á c lại giao d iện người dùng và các tín h n ăn g m ã m à trước đó b ạn đă tạo mà k hông p h ải làm các bước cắt v à d án vụng về. Nói cách khác, bạn đã gặp p h ải m ột tro n g những lợi ích của OOP - tá i sử dụng và mở rộng chức n ăn g của các form, m ã chương tr ìn h và project h iện có. B ạn đã học sử dụng hộp thoại Visual Studio In h eritan c e Picker, hộp th o ại n ày đưa ra m ột cách tiệ n lợi để chọn các đối tượng m à bạn muốn tá i sử dụng. 12. N hấp OK để đóng hộp thoại và sau đó n h ấp C lo se trê n form để k ế t thúc chưcmg trìn h . Chương trìn h dừng lại và IDE quay trở lại. Tạo các Class ctí sỏ riêng của bạn In h eritan ce P icker quản lý tiế n trìn h thừa k ế tro n g bài tậ p trước bằng việc tạo m ột class mới tro n g project có tê n là Form 2. Để xây dựng class Form 2 In h eritan c e P ick er th iế t lập m ột liên k ế t giữa F o rm l tro n g project My Form In h eritan c e và form mới. Sau đầy là diện mạo của class Form2 m ới trong Code Editor: ' 4* • Cỉ«»6 ' 1 P rlv a te ỉuí» Boííoria SyVal « A»' S4 n Snổ cỉ« (>
  9. 1 5 2 ________________________ C h ư d n g 16: Thừa kê' các form v à tạo các class cơ sở Thủ tục sự k iện Button3_Click m à b ạn đã thêm cũng là m ột th à n h viên của class mới. N hưng h ãy nhớ lại răn g bản th â n class P o rm l phụ thuộc vào class System .W indow s.Form s.Form cho h à n h vi và các đặc điểm cơ bản của nó. Do đó bài tậ p vừa rồi cho th ấy m ột class d ẫn x u ấ t (Form2) có th ể thừ a k ế chức n ăn g của nó từ m ột class dẫn xuất k h ác (P o rm l) m à lần lượt thừ a k ế chức n ăn g cốt lõi của nó từ m ột class cơ sở gốc (Form ), vốn là m ột th à n h viên của nam espace System .W indow s.Form s tro n g Microsoft. N ET Fram ew ork. N goài In h eritan ce Picker, Visuai Studio cung cấp câu lệ n h In h e rits, câu lện h này làm cho class h iện h à n h thừa k ế các thuộc tín h , th ủ tục và biến của m ột class khác. Để sử dụng câu lện h In h e rits để th ừ a k ế m ộ t form, bạn phải đ ặ t câu lện h In h e rits ở p h ần trê n cùng của form dưới d ạn g câu lệnh đầu tiê n tro n g class. Mặc dù có th ể b ạn chọn sử dụng In h e rits cho loại công việc này với các form, nhưng sẽ hữu dụng khi b iết về In h e rits bởi vì nó cỏ th ể được sử dụng cho các class và các giao diện {interface) ngoài trừ các form, và có lẽ th ỉn h th o ản g b ạn sẽ gặp phải nó tro n g m ả chương trìn h của các đồng nghiệp. B ạn sẽ xem m ột ví dụ về câu lện h In h e rits gần cuôl chương này. N hận ra rằ n g các class là m ột khôi tạo cơ b ản n h ư vậy tro n g các chương trìn h Visual Basic, cũng có th ể b ạn hỏi các class mới được tạo n h ư th ế nào và những class mới n ày có th ể được th ừ a k ế bởi các class được d ẫ n xuất tiếp theo n h ư th ế nào. Để suy nghĩ về những k h ả n ăn g này, p h ầ n còn lại của chương này sẽ được d àn h để thảo luận cú pháp tạo các class tro n g Visual Basic 2010 và giới th iệu cách các class do người dùng xác đ ịn h này có th ể được th ừ a k ế sau bởi nhiều class hcfn n h ư th ế nào. Đồng th ờ i b ạn sẽ học việc tạo các class riên g của b ạn có th ể r ấ t hữu đụng n h ư t h ế nào. Thêm một Class mới vào Proịect M ộ t c la s s tro n g V is u a l B a s ic là m ộ t s ự đại d iệ n h o ặ c b lu e p rin t đ ịn h n g hĩa cấ u trú c c ủ a m ộ t h o ặ c n h iề u đ ố i tữ ợng, T ạ o m ộ t c la s s c h o p h é p iDạn định n g h ĩa cá c đ ố i tu ợ n g riê n g củ a b ạ n tro n g m ộ t ch ư ơ n g trin h - c á c đ ố i tư ợ n g c ó c á c th u ộ c tín h , p h ư ơ ng thức, trư ờn g v à s ự k iệ n g iố n g n h ư c á c đ ố i tư ợng m à c á c c o n tro l T o o lb o x tạ o trê n c á c fo rm W in d o w s , Đ ể tạ o m ộ t c la s s m ới v à o p ro Ịe ct, b ạ n n h ấp lệ n h A d d C la s s trê n m e n u P ro je c t v à s a u đ ó bạn đ ịn h n g h ĩa c la s s b ằ n g v iệ c sử d ụ n g m ã ch ư ơ n g trình v à m ộ t v à i từ khóa V isu a l B asic. T ro n g bài tậ p sa u đ â y, bạn s ẽ tạ o m ộ t c h ư ơ n g trình n h ắ c m ộ t n h â n v iê n m ới vê tê n , h ọ v à n g à y s in h c ủ a họ. Bạn sẽ lưu trữ th ô n g tin n à y tro n g c á c th u ộ c tín h c ủ a m ộ t c la s s m ới c ó tê n là P e rs o n , v à bạn sẽ lạ o m ộ t p h ư ơ n g thức
  10. C h ư ơ n g 16: Thừa k ế các form và tạo c á c c la s s cơ sd 153 tro n g c la s s đ ể tính tuổi h iệ n tại củ a n h ân v iê n m ớ i. P ro je c t n à y sẽ hướng dẫ n bạn c á c h tạ o các c la s s riê n g củ a bạn v à c ũ n g h ư ớ n g d ẫ n c á c h s ử d ụ ng c á c c la s s tro n g nhữ ng th ủ tụ c thừ a k ế c ủ a c h ư ơ n g trìn h . X â y d ự n g p r ọ ịe c t P e r s o n C la s s 1. N h ấ p lệ n h C lo s e P r o j e c t tr ê n m enu F ile và sau đó tạo m ột project W indows Porm s Application mới có tê n là M y P e r s o n C lass. 2. Sử dụng control Label để thêm m ột đối tượng n h ả n vào p h ần trên cùng của F o rm l. 3. Sử dụng control T e x tB o x để vẽ hai đối tượng hoặc tex t rộng bên dưới đối tượng nhãn. 4. Sử dụng control D a te T im e P ic k e r để vẽ m ột đối tượng date tim e picker bên dưới các đòi tượng hộp text. L ần sau cùng bạn đã sử dụng control D ateT im ePicker đế n h ập các ngày th á n g tro n g Chương 3. Đi đến chương đó nếu b ạ n m uốn xem lại các phương thức và thuộc tín h cơ b ản của control này. 5. Sử dụng control B u tto n để vẽ m ột đôl tượng n ú t bên dưới đối tượng d ate/tim e picker. 6. Xác lập các thuộc tín h sau đây cho các đối tượng trê n form. Đ ố i tư ợ n g T h u ộ c tín h Xác lậ p L abell Text “Enter employee first name, last name, and date of birth.” TextBoxl Text “F irst nam e” TextBox2 Text “L ast nam e” Buttonl Text “Display recorđ” P orm l Text “Person Class’’ F orm trô n g tương tự như sau: P e rs o n c i ì ỉ ỉ E n ỉ e i e iT i( 3 lo y « e lir s t n a m e , la s t rtârTke, drư: d a l e o l b H th Tc nírte vl a Surtdạy , Pebudiy 26.2Ũ1D •
  11. 154 C h ư ở n g 16: Thừa k ế các form và tạo các ciass cơ sỏ Đây là giao diện người dùng cơ bản cho m ột form định n g h ĩa m ột record (bản ghi) n h ân viên mới cho m ột ứng dụng thương m ại. Tuy nhiên, form không được k ết nối với m ột cơ sô dữ liệu, do đó chỉ mỗi lầ n m ột record có th ể được lưu trữ. B ạn sẽ học cách th iế t lập các nối k ế t cơ sở dữ liệu tro n g Chương 18. Bây giờ b ạn sẽ th êm m ột class vào project để lưu trữ th ô n g tin tro n g record. 7. N hấp lện h A d d C la s s trê n m enu Project. Visual Studio h iển th ị hộp thoại Add New Item , với tem p late Class được chọn, như dược m in h họa ở đây: I I II , II A ổd l u m * P t /S « n C l ^ W liH c 4 T e ttp h le s C o i n m o n E te íT ii Ccđr ^ %!kShttỉ C < o bs'” } flfn n r> Irpe; Coírrror) kemt A r « m o t y < b u d « f in i( i9 n Otf G *etệi»l JScnp < ) ^ U > « rC » rW o l C«mpon(AtCl»tt CfifT
  12. C h ư cn g 16: T h ù a kế các form và lạ o các class co sò 155 M« Étíil Virm P/6ịtcX 8y;w P eb/9 0«I T9«'i Trtt M-Vid(5w H*tp ,** . ' ‘ , : 3 * .^ . k ề ể - : ồ ^ -V 'r ........ M á x ^ ^ V ỉ< ú > l^ữ ' *'íPơK»fl í* tU C > u c ìo » P « r > c n C liỉi ^ M /^ r o /c ( > gr^ri CJa&« ^orm ,v& X *1P jfln*A * n •'3 SelvOe'^^. TL):n , t :^r ' iOO% Bây giờ b ạn sẽ gõ n h ập định nghĩa của class tro n g class module và học m ột v ài từ khóa Visual Basic mới. B ạn sẽ làm theo bôn bước: kh ai báo các biến class, tạo các thuộc tín h , tạ o m ột phương thức, và cuối cùng tạo m ột đối tượng dựa vào cỉass mới. B ư ớ c 1 : K h a i b á o c á c b iế n c ia s s K Bên dĩíới cân lệnh cbKơng trình Piibiic Class Person, gõ nhập các phần khai báo biến san đâv: Private IMamel As string Private Nameíĩ As string ở đây, b ạn khai báo h ai biến m à sẽ được sử dụng độc quyền bên tro n g cỉass module để lưu trữ các giá tr ị cho h a i xác lập thuộc tín h chuỗi. Các biến đâ được k h ai báo bàng việc sử đụng từ khóa P rivate bởi vì, th eo quy ước, các n h à lập trìn h Visual B asic giữ riên g tư các biến class nội bộ của m ìn h - nói cách khác, k hông có sẵ n để kiểm tra bên ngoài chinh class module. Đói k h i những biến này được gọi là các field (trường) hoặc backing field (trường hỗ trợ) bởi vì chúng cung cấp sự lưu trữ cho các thuộc tính. B ư ớ c 2: T ạ o c á c t h u ộ c t ín h 1. B ên dưới các p h ần k h a i báo biến, gõ n h ậ p câu lện h chương trìn h sau đây và sau đó n h ấ n E N T E R :
  13. 156 C h ư ớ n g 16: T h ừ a k ế c á c fo rm v à lạ o c á c c la s s c ơ sở Public Property RrstNameO As string Câu lệ n h n à y tạo m ột thuộc tín h có tê n là P irtsN a m e có kiểu s tr in g tro n g class. Đây là tấ t cả những p b ạn cần làm để thực thi m ột thuộc tín h dơn giản. (Một backing field không được yêu cầu), T rong V isual Studio 2008, nhữ ng gì x ảy r a tiế p th eo là Visual Basic tạo m ột khuôn mẫu m ã (code tem plate) cho nhữ ng phần tử còn lại tro n g p h ần khai báo thuộc tín h . N hững p h ần tử n ày chứa m ột khô'i G et quyết định những gì m à các n h à lập trìn h k hác thấy khi họ kiểm tr a thuộc tín h P irstN am e; m ột khôi S et quyết định nhữ ng gì xảy ra khi thuộc tín h F irstN am e được xác lập hoặc được th a y dổi; và m ột câu lện h E nd Property đ án h đấu sự k ế t thúc của th ủ tục thuộc tín h . Tuy nhiên, tro n g V isual Studio 2010, những p h ần tử n ày được tạo tự động khi b ạn sử dụng câu lện h Property. T iến trìn h xảy ra nội bộ (bạn không th ấ y nó tro n g Code Editor), và tro n g tà i liệu, nó được gọi là tín h n àn g các thuộc tín h tự động thực th i (auto-im plem ented properties) mới. Điều n ày cho p h ép bạn xác định n h a n h m ột thuộc tín h của m ột class m à k hông cần phải tự v iế t các khô'i m ã G et và Set. Các thuộc tín h tự động thực th i r ấ t tiệ n lợi cho nhữ ng người thường xuyên tạo hoặc xử lý các class và thuộc tín h . Tuy n h iên , có những tìn h huống b ạn không th ể sử dụng các thuộc tín h tự động thực thi m à th a y vào đó p h ải sử dụng cú pháp thuộc tín h chuẩn hoặc mở rộng (nghĩa là cú pháp m à b ạn sử dụng thường xuyên tro n g Visual Basic 2008). N hững tìn h huống Iiày bao gồm như sau: m Bạn cần ihêm mã vào thù lục Gct hoặc Set của mộ! Ihuộc tinh (ví du. khi bạn hiện lực hóa các giá trị !rong ỉnộ! khối niă Scí). M B ạn imiốn làm cho một ỉbiiộc lính Scl trở n ên Privatc hoặc một Ibiiộc linh Get trở nôn Public. 9 Bạn niỉiốn tạo các thuộc linh là WriteOnly boậc ReadOnly. K Bạn muốn thêm các thuộc tinb đ ì C Ợ c tham số hóa đặc biệt. # Bạn muổn đặt một thìiộc tinh hoặc comment Extensible Markìip Lan- gitage (XML) irong m ột tníờng riông, ẩn. Mặc dù có th ể những công dụng này dường n h ư n ân g cao hoặc bí ẩ n vào thời điểm này, nhưng chúng quan trọ n g đủ để cho bạn biết cú p h áp chuẩn cho các khối m ã G et và S et là gì. T h o ạt đầu có th ể
  14. C hự dng 16: Thửa kẽ' các form và tạo các class co sỏ________________________ 1 5 7 bạn không cần sử dụng nó, nhưng khi b ạn tạo các class và thuộc tín h cao cấp hơn riên g của m ình, có th ể b ạn cần sử dụng nó- (Ngoài ra, tài liệu Visual Studio Help thường trìn h bày những khõi m ã Get và Set n ày khi thảo luận các class, do đó bây giờ bạn nên học cú p h áp chuẩn). 2. Gõ n h ập cấu trúc th ủ tục thuộc tín h F irstN am e sau đây sử dụng các từ khóa G et và Set. B ạn sẽ chú ý rằ n g p h ần lớn cấu trúc được tự động thêm vào sau khi b ạn gõ n h ập câu lệ n h G et đầu tiên: Get Return Namel End Get Set(ByVal vaíue As string) Namel = value Enđ Set End Properíy T rong cấu trúc này, từ k h ó a R eturn xác đ ịn h rằ n g b iến chuỗi N am el sẽ dược tr ả về k h i thuộc tín h P irstN am e được th a m chiếu. Khôi Set gán m ột giá trị chuỗi vào biến N am el k h i thuộc tín h được xác lập. ớ đây đặc b iệ t chú ý biến value được sử dụng tro n g các th ủ tục thuộc tín h để đại diện cho giá trị được gán sa n g class k h i m ột thuộc tín h được xác lập. Mặc dù có th ể cú pháp n ày trô n g lạ nhưng đây là cách chính thức để tạo các xác lập thuộc tín h tro n g các control và các thuộc tín h phức tạp hơn th ậ m chí bổ sung th êm logic chương trìn h ồ đây để te x t các giá trị hoặc thực h iện các tín h toán. 3. Bỗn dưới câu lện h E n d P roperty, gõ n h ập m ột th ủ tục thuộc tín h thứ hai cho thuộc tín h L astN am e trong class. L ần nữa, sau khi b ạn gõ n h ập từ khóa Get, p h ần lớn cấu trúc cho th ủ tục thuộc tín h sẽ được tự động th êm vào: Public Property LastNameO As string Geỉ Return Name2 Enđ Get Set(ByVal value As Sĩrỉng) Name2 » value
  15. 1 5 8 ________________________ C h ư ờ n g 16: Thừa kế các form và tạo các class co sở End Set End Property Thủ tục thuộc tín h n ày tương tự như thủ tục thuộc tín h dầu tiên ngoại trừ nó sử dụng biến chuỗi th ứ h ai (Nam e2) m à b ạn đ ã khai báo ở p h ần trê n cùng của class. Bạn dã định n g h ĩa xong h ai thuộc tín h tro n g ciass. Bây giờ hãy tiếp tục đi đ ến m ột phương thức có tê n là Age, phương thức n ày sẽ quyết định tuổi h iệ n tạ i của n h ân viên mới dựa vào ngày sin h của n h ân viên này. B ư ớ c 3 : T ạ o m ộ t p h ư ơ n g th ứ c K Bên dĩtói thủ tục thuộc tính LastName, gõ nhập định nghĩa hàm san đáỵ: Pubỉic Punction Age{ByVal Birthday As Date) As Integer Return lnt(Now.Subtract(Birthday),Days / 365.25) End Punctỉon Để tạo m ột phương thức tro n g class thực h iện m ột h à n h động cụ thể, bạn th ê m m ột h àm hoặc m ột thủ tục Sub vào class. Mặc dù nhiều phương thức không đòi hỏi các đôl số để hoàn th à n h công việc của chúng, nhưng phương thức Age m à b ạn đang định nghĩa đòi hỏi m ộ t đô'i số B irth d ay có kiểu D ate để hoàn th à n h việc tín h to án của nó. Phương thức n ày sử đụng phương thức S ubtract để lấy th ờ i gian hệ th ố n g h iệ n h à n h trừ cho ngày sin h của n h â n viên mới và nó tr ả về giá trị được biểu diễn b ằn g các ngày chia cho 365.25 - chiều dài xấp xỉ trong các ngày của m ột năm . H àm In t trả về p h ần sô' nguyên của m ột sô', và giá trị này được tr ả về thủ tục gọi bằng câu lệ n h R eturn - giống n h ư m ột h àm điển h ình. (Để b iế t th êm th ông tin về việc định n g h ĩa hàm , xem Chương 10). Đ ịnh n g h ĩa class hoàn tấ t, và trong Code E ditor, bây giờ class Person trô n g n h ư h ìn h m in h họa dưới đây;
  16. C h ư đ n g 16: Thừa kế các form và tạ o c á c c la s s c ơ sở 159 P«n«ftCỈ
  17. 1 6 0 ________________________ C hU đng 16: Thửa kẽ' các form và tạo các class cờ sỏ DOB = DateTimePỉckerl.Value.Date Msg6ox(Employee.FirstName & “ ‘ & Employee.LastName _ & “ is " & Employee.Age(DOB) & " years old.") Thường tr ìn h này lưu trữ các giá tr ị được n h ập bởi người dùng trong m ộ t đô'i tượng có tê n là employee được k h a i báo là kiểu P erson. Từ khóa New biểu th ị rằn g b ạn muốn tạo m ột in stan ce của đô'! tượng Em ployee ngay tức thì. B ạn dã thường xuyên k h ai báo các biến tro n g sách này ' bây giờ b ạn p h ải khai báo m ộ t biến dựa vào m ột class m à b ạ n đã tự tạo. Sau đó thường trìn h k h ai báo m ộ t biến D ate có tê n là DOB để lưu trữ ngày th á n g được n h ập bởi người dùng, và các thuộc tín h P irstN am e và L astN am e của đối tượng Employee được xác lập sa n g tê n và họ được tr ả về bởi h ai đối tượng hộp tex t trê n form. G iá trị được tr ả về bởi dối tượng date/tim e p icker được lưu trữ tro n g b iến DOB, và câu lện h chương trìn h sau cùng h iể n th ị một hộp th ô n g báo chứa các thuộc tín h P irstN am e và L astN am e cộng với tuổi của n h â n viên mới như được quyết đ ịnh bởi phương thức Age phương thức tr ả về m ột giá trị số nguyên k h i biến DOB được chuyển đ ến nố. Sau khi b ạn định nghĩa m ột class tro n g m ộ t class module sử dụng nó tro n g m ột thủ tục sự k iện chỉ là m ột v ấn đề đơn giản như thường trìn h n ày m inh họa. 4. N h âp n ú t S a v e A ll để lưu các th a y đổi và sau đó xác đ ịn h folder C :\V b l0 s b s \C h a p l6 làm vị trí, 5. N h ấp n ú t S t a r t D e b u g g in g dể chạy chưcmg trìn h . Giao d iện người dùng xuất h iện trong ID E sẩ n sàn g để b ạn nhập dữ liệu vào. 6. Gõ n h ập m ột tê n trong hộp te x t F irs t N am e và m ột họ tro n g hộp te x t L ast Name. 7. N h ấp mũi tê n của đối tượng date/tim e picker và sau đó cuộn trong hộp đ an h sách đ ến m ột ngày sin h mẫu. • • • • • • • Thú thuật Bạn có th ể cuộn nhanh hcfn vào quá khứ bằng việc nhấp trường Year khi hộp thoại d a te /iim e picker mở. Các mũi tên cuộn xuất hiện, và bạn có thể di chuyên lùi hoặc tiến mỗi lần một nâm. Bạn cũng có th ể di chuyển nhanh đến tháng mà bạn muốn bằng cách nhấp trường M onlh và sau đó nhấp tên tháng.
  18. C h ư d n g 16: Thừa kế các form và \ỈỊ0 các class cơ sỏ 161 Form trô n g tương tự như sau: ^ PerSĐr»Cl«h \ £nlei eỉTptộyet lv$( nvM. lAsl nam«, dnd ddte ỡf brỉK M#k bund«( JUy i /uỉy, 1970 Sun Mofi Twe w «d Thu Prí Sat ;e 1 2 3 4 s 6 7 8 9 10 11 ’ ú n 14 15 16 17 18 19 ỉồ 2 2 22 23 24 25 26 2S 29 30 51 ! 2 3 á i> e ; ẵ r _ ! T o dỉy: 2/ĨỒ/2QĨQ 8. N hấp n ú t D is p la y R e c o rd . Chương trìn h lưu trữ các giá trị tê n và họ tro n g các xác lập thuộc tín h và sử đụng phương thức Age để tín h tuổi h iệ n tạ i của n h â n viên mới. M ột hộp th ông báo hiển th ị k ế t quả, n h ư được m in h h ọ a ở đây. M ^ r k H d ỉ id lỉ IS 39 y e d r ỉ ộ ld . OK 9. N hấp OK để đóng hộp thông báo và sau đó th ử nghiệm với m ột vài giá trị n g ày th á n g khác nhau, n h ấp D is p la y R e c o r d mỗi lầ n bạn th a y đổi trường B irth Date. 10. Khi bạn th ử nghiệm xong với class mới, n h ấp n ú t C lo se trê n form. Môi trường p h á t triể n quay trở lại. Tiến xa thêm một bước: Thừa kế một Class cơ sở N hư đã nói ở đầu chương này, có th êm m ột th ủ th u ậ t về các class do người đùng xác đ ịn h và sự th ừ a kế. Tương tự n h ư các form có th ể th ừ a kế zác class form, chúng cũng có th ể thừa k ế các class m à b ạn đã định nghĩa bàng việc sử dụng lện h Add Class và m ột class mođule. Cơ cấu để th ừ a k ế m ột class cơ sở (bố) là sử dụng câu lện h In h e rits để aao h à m class được đ ịn h nghĩa trước đó tro n g m ột class mới. Sau đó bạn
  19. 1 6 2 ________________________ C h ư đ n g 16: Thửa kẽ' các form và tạo các cíass cơ sở có th ể bổ sung th ê m các thuộc tín h hoặc phương thức vào class d ẫn xuất (con) để p h ân b iệ t nó với class cơ sd. Có th ể điều này dường như n g h e có vẻ hơi trừu tượng, do đó h ãy th ử m ột ví dụ. T rong b ài tậ p sau đây bạn sẽ chỉnh sửa project My Person C lass sao cho nó 1i A trữ th ô n g tin về các giáo viên mới và các lớp m à họ dạy. Đầu j tiên , b ạn sẽ th ê m m ộ t class th ứ h ai do người dùng đ ịnh nghĩa có tê n là T eacher vào class module Person. Class mới n ày sẽ th ừ a kê' thuộc tín h F irstN am e, thuộc tín h L astN am e và phương thức Age từ class P erso n và sẽ bổ sung th êm m ột thuộc tín h có tê n là G rade để lưu trữ lớp m à giáo viên mới dạy. S ử d ụ n g t ừ k h ó a I n h e r it s 1. N h ấp c la s s P e r s o n .v b trong Solution E xplorer và sau đó n h ấ p nút View Code. 2. Cuộn đến cuôl Code E ditor sao cho điểm chèn n ằm bên dưới câu lện h E n d C la ss. N hư đã đề cập trước đó, b ạn có th ể bao h àm nhiều class tro n g m ột class module, m iễn là mỗi class được p h ân dịnh b ằn g các câu lệnh Public Class và E nd Class. B ạn sẽ tạo m ột class có tê n là T eacher tro n g class module này, và b ạn sẽ sử dụng từ k h ó a In h e rits để k ế t n h ập phưcmg thức và các thuộc tín h m à b ạn đã định n g h ĩa trong class Person. 3. Gõ n h ập đ ịnh n g h ĩa class sau đây trong Code E ditor. N hư trước đó sau k h i b ạn gõ n h ập từ khóa G et và n h ấ n E N T E R , m ột sô' cấu trúc P roperty sẽ được cung cấp cho bạn: Public Class Teacher Inherits Person Prỉvaíe Level As Short Public Property GradeO As Short G6t Return Level End Get Set{ByVal value As Short) Level = value End Set
  20. C h ư ò n g 1 6 : T h ừ a k ế c á c to rm v à tạ o c á c c la s s c ơ s ở 163 Enđ Property End Class Câu lệ n h In h e rits liên k ế t class P erson với class mới này, bao gồm tấ t cả các biến, thuộc tín h và phương thức của nó. N ếu class Person đã được đ ặ t tro n g m ột module hoặc project riên g biệt, b ạ n có th ể n h ận dạng vỊ trí của nó b ằn g việc sử dụng m ột sự chỉ đ ịnh nam espace, tương tự như b ạn n h ậ n dạng các class k h i b ạn sử dụng câu lệnh Im ports ở p h ần trê n cùng của m ột chương trìn h sử dụng các class trong các th ư viện class -NET Fram ew ork. v ề cơ bản, T each er class đã được định nghĩa là m ột kiểu đặc b iệt của class P erson - ngoài các thuộc tín h F irstN am e và LastN am e, class T each er có m ộ t thuộc tín h G rade ghi chép tr ìn h độ m à giáo viên dạy. Bây giờ b ạn sẽ sử dụng class mới trong th ủ tục sự k iệ n B uttonl_C lick. 4. H iển th ị th ủ tục sự k iện B uttonl_C lick tro n g F o rm l. Thay vì tạo m ột b iến mới để chứa class T eacher, b ạn chỉ việc sử dụng y nguyên biến Em ployee - sự k hác b iệ t duy n h ấ t sẽ là bây giờ bạn có th ể xác lập m ột thuộc tín h G rade cho n h â n viên mới. 5. C hỉnh sửa th ủ tục sự k iện Button_Click n h ư sau. (Các dòng được tô bóng là các dòng m à b ạn cần th a y đổi). Dim Employee As New Teacher Dim DOB As Date Employee.PirstName a TextBoxl.Text Employee.LastName = TextBox2.Text » DOB = DateTimePickerl.Value.Date Employee.Grade = lnputBox(’‘What grade đo you teach?” ) MsgBox(Employee.FirstName & " “ & Employee.LastName _ & ‘‘ teaches građe “ & Empíoyee.Grade) T rong ví dụ này, phép tín h tuổi h iện tạ i đã được loại bỏ - phương thức Age không được sử dụng - nhưng điều này được thực h iệ n chỉ để giữ th ô n g tin ở mức tối thiểu tro n g hộp th ô n g báo. Khi b ạ n định n g h ĩa các thuộc tín h và phương thức tro n g m ộ t class, b ạ n không được yêu cầu sử dụng chúng trong m ã chương trìn h . Bây giờ b ạn sẽ chạy chương trìn h .
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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