Tài liệu Những chức năng Đối Tượng mới của VB.NET (phần I) - Pdf 85


Bài 4
Những chức năng Đối Tượng mới của VB.NET
(phần I)
V
B.NET khắc phục những giới hạn về Đối Tượng (Object-Oriented) của
VB6 và mang đến cho ta một ngôn ngữ lập trình hoàn toàn Object-Oriented
(OO). Gần như mọi thứ trong VB.NET đều liên hệ với Object. Nếu bạn còn mới
với lập trình theo hướng đối tượng (Object Oriented Programming) thì phần giải
thích sau đây sẽ giúp bạn làm quen với nó.
Classes và Objects, nguyên tắc Abstraction
Theo phương pháp đối tượng, program được thiết kế để một phần code đại diện
cho một vật tương đương ngoài đời. Nó được gọi là Class.

Khi lập trình VB6 ta đã dùng những controls từ Toolbox như Textbox, Label,
Listbox ..v.v.. Textbox là Class của các Objects Text1, Text2. Cũng như
Label1, Label2 là những Objects tạo ra từ Class Label. Ta hay dùng hai từ
Class và Object lẫn lộn nhau. Điều đó không quan trọng, miễn là ta biết rằng
Class là một ý niệm Trừu tượng (Abstraction), còn Object là một vật thực
hữu. Giống như Class CaSĩ là một ý niệm trừu tượng, còn Object KhánhHà
của Class CaSĩ là một người bằng da, bằng thịt với tiếng hát được nhiều người
ngưỡng mộ.

Ta nói Object là một Instance của Class, và ta instantiate Class để có một
Object.

Thường thường khi ta phân tích một vấn đề để thiết kế chương trình thì các
Danh từ (Nouns) là những Classes. Giả dụ ta phân tích hoạt động của một Nhà
Kho (warehouse). Ta có phòng chứa, ngăn tủ, bãi nhận hàng, xe nâng hàng,
nhân viên ..v.v., mỗi thứ đều có thể là một Object nên ta sẽ thiết kế một Class
cho nó.

Cái lợi điểm của Object Oriented Programming là ta có thể gói tất cả những đặc
điểm, khả năng của một Class vào trong một Unit of Code (Đơn vị mã) tự túc.
Khi chúng ta lịch sự yêu cầu thì CaSĩ ĐơnCa. Ta biết CaSĩ ca thì thu hút lòng
người, nhưng ta không cần biết làm sao CaSĩ đạt đến trình độ như vậy. Đó
không phải là chuyện để chúng ta quan tâm.

Đối với ta Class CaSĩ là một Black Box, ta không biết và không cần biết chuyện
gì xãy ra bên trong. Nếu sau nầy CaSĩ thay đổi kỹ thuật đơn ca để hát dễ và hay
hơn, điều đó không ảnh hưởng gì đến chúng ta. Đặc tính OO ấy gọi là
Encapsulation (Gói kín).

Cách ta lập trình với Class chỉ khác cách ta lập trình trước đây một chút thôi. Nếu
trước đây ta phải tự làm, thì bây giờ ta instantiate một Object của Class chuyên
trị những chuyện ta muốn làm, rồi bảo nó làm cho ta. So với ngoài đời, thí dụ
bạn có mở một tiệm photocopy. Sau một năm bạn tự trông coi, công chuyện làm
ăn ổn định và có kết quả tốt. Bạn muốn mở thêm một tiệm photocopy nữa ở chỗ
khác. Trước khi đi lo chỗ khác bạn huấn luyện nghề photocopy cho một người
làm công trung thành, rồi giao cho người ấy làm quản lý để thay thế bạn. Người
đó là môt Object của Class QuảnLýTiệmPhotoCopy.

Trở lại cách lập trình, những công việc bạn làm hằng ngày trong tiệm photocopy
là những Methods. Tất cả đồ đạc, sổ sách của tiệm là những Properties. Bạn
đã sắp đặt mỗi tuần phải gọi người lại quét dọn tiệm, mỗi tháng phải bảo trì các
máy photocopiers, đó là những Events. Bây giờ bạn gói tất cả những thứ ấy lại
thành Class QuảnLýTiệmPhotoCopy. Lần đầu bạn instantiate Class
QuảnLýTiệmPhotoCopy làm thành ChúTưThông, người sẽ thay thế bạn làm
quản lý tiệm photocopy đầu tiên. Khi bạn muốn mở thêm tiệm thứ ba, bạn sẽ
instantiate Class QuảnLýTiệmPhotoCopy một lần nữa làm thành DìSáuHương ,
người sẽ thay thế bạn làm quản lý tiệm photocopy thứ nhì.


bugs mới. Ta phải chỉ cần Inherit từ Object Code của một Class cũng được thì
mới thật sự là Reuse.

Ta dùng Inheritance để cho thêm các Class Members, tức là thêm đặc tính và
chức năng. Thí dụ NghệSĩ thì có Property TâmHồn (NhạyCảm (Sentitive) ,
ThơMộng (Romantic),...), và Methods KýTênLưuNiệm, TrìnhDiễn. Class CaSĩ
sẽ giữ y các đặc tính và chức năng ấy và thêm Sub ĐơnCa, Function
HátNhạcYêuCầu, .v.v..

Tương tự như vậy, ta cũng có thể thừa kế từ Class NghệSĩ để tạo ra Class
HọaSĩ. Class HọaSĩ sẽ giữ y các đặc tính và chức năng của Class NghệSĩ nhưng
thêm Function VẽChânDung, Sub TrangTrí.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status