Lập Trình Hướng Đối Tượng Trong VB.NET và Mô Hình MVC

Chuyên khảo phân tích Lập trình hướng đối tượng trong vb net và mô hình mvc, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2023

136
1
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG VB.NET

1.1. Khởi tạo đối tượng

1.2. Khai báo lớp VB.net

1.3. Bài Toán: Cần thiết kế lớp tượng trưng 1 thời điểm CTime

1.4. Xác định constructor (phương thức xây dựng) và các phương thức khác

1.5. Xác định các hành động có thể thực thi với thực thể, đối tượng

1.6. Sử dụng lớp trong các đồ án khác

1.7. Khởi tạo một đối tượng từ một class

1.8. Hoạt vi Class

1.9. Constructor (Phương thức khởi tạo)

1.10. Overloaded Constructors

1.11. Shared Member (Thành viên được chia sẻ)

2. CHƯƠNG 2: MÔ HÌNH MVC VÀ ĐỒ ÁN MINH HỌA

2.1. Mô hình

2.2. Các sự kiện

2.3. Các phương thức

3. CHƯƠNG 3: SỬ DỤNG ĐIỀU KHIỂN STYLEDTEXTAREA TRONG CÁC ĐỒ ÁN KHÁC

3.1. Biên dịch thành StyledTextArea dll

3.2. Nguyên vọng ứng dụng

3.3. Các chức năng trong menu

3.3.1. Chức năng trong menu File

3.3.2. Chức năng trong menu Edit

3.3.3. Chức năng trong menu Format

Tóm tắt

I. Nền tảng OOP trong VB

Phần này giới thiệu các khái niệm cốt lõi của lập trình hướng đối tượng trong môi trường VB.NET. Nội dung sẽ đi sâu vào định nghĩa của lớp và đối tượng, hai thành phần nền tảng của mọi ứng dụng OOP. Đồng thời, phần này cũng làm rõ sự khác biệt giữa các access modifier, một yếu tố quan trọng quyết định khả năng truy cập và tính bảo mật của dữ liệu. Việc nắm vững những kiến thức này là bước đệm thiết yếu trước khi kết hợp OOP với các kiến trúc phức tạp hơn như MVC.

1.1. Tìm hiểu về Class Lớp và Object Đối tượng

Trong lập trình hướng đối tượng trong VB.NET, hai khái niệm quan trọng nhất là lớp và đối tượng. Một Class (lớp) hoạt động như một bản thiết kế chi tiết hoặc một khuôn mẫu. Nó định nghĩa các thuộc tính (dữ liệu) và phương thức (hành động) chung cho một loại thực thể. Ví dụ, một lớp Rectangle (Hình chữ nhật) sẽ định nghĩa các thuộc tính như Width (chiều rộng), Height (chiều cao) và các phương thức như Area() (tính diện tích). Tài liệu gốc mô tả Class là 'một tổng quát hóa của một thực thể trong thế giới thực'. Sau khi có bản thiết kế là Class, các Object (đối tượng) cụ thể có thể được khởi tạo (instantiate). Mỗi đối tượng là một thể hiện (instance) của lớp đó, có trạng thái và hành vi riêng biệt dựa trên định nghĩa của lớp. Chẳng hạn, từ lớp Rectangle, có thể tạo ra hai đối tượng hinh1hinh2 với kích thước khác nhau. Các đối tượng này có thể truy cập và sử dụng các thành viên công khai (Public) của lớp, tạo nên một 'giao diện' để tương tác.

1.2. Access Modifiers Public Private và Protected

Access Modifiers quy định phạm vi truy cập của các thành viên trong một lớp. VB.NET cung cấp các từ khóa chính: Public, Private, và Protected. Thành viên Public có thể được truy cập từ bất kỳ đâu, cả bên trong và bên ngoài lớp. Thành viên Private chỉ có thể được truy cập bởi các thành viên khác trong cùng một lớp, đảm bảo tính đóng gói trong VB.NET và che giấu dữ liệu quan trọng. Tài liệu gốc khẳng định: 'Nỗ lực từ một đối tượng khởi tạo từ một Class truy cập vào thành viên Private của Class sẽ gây ra một lỗi lập trình'. Thành viên Protected là một dạng trung gian, cho phép truy cập từ bên trong lớp và các lớp con kế thừa từ nó. Việc lựa chọn Access Modifier phù hợp là rất quan trọng để xây dựng các lớp an toàn, dễ bảo trì và tái sử dụng, đây là nguyên tắc cơ bản của OOP trong VB.NET.

II. Bốn tính chất của OOP trong VB

Đây là phần trọng tâm, phân tích sâu về bốn tính chất của OOP – những trụ cột làm nên sức mạnh của phương pháp lập trình này. Mỗi tính chất sẽ được giải thích rõ ràng kèm theo các ví dụ minh họa trong Visual Basic .NET. Việc hiểu và áp dụng thành thạo các tính chất này không chỉ giúp mã nguồn trở nên có tổ chức, dễ bảo trì mà còn là tiền đề để xây dựng các hệ thống phức tạp, đặc biệt là khi áp dụng vào kiến trúc MVC.

2.1. Tính Đóng gói Encapsulation và Che giấu thông tin

Tính đóng gói là cơ chế kết hợp dữ liệu và các phương thức xử lý dữ liệu đó vào trong một thực thể duy nhất gọi là đối tượng. Mục tiêu chính là che giấu chi tiết triển khai bên trong và chỉ cung cấp một giao diện công khai để tương tác. Trong VB.NET, tính đóng gói được thực hiện bằng cách khai báo các biến thành viên (instance variables) là Private và cung cấp các phương thức Public (hoặc Properties với Get/Set accessors) để truy cập và thay đổi chúng. Điều này ngăn chặn việc truy cập trực tiếp và thay đổi dữ liệu một cách tùy tiện, giúp đảm bảo tính toàn vẹn của đối tượng. Nghiên cứu gốc chỉ ra rằng việc che giấu thông tin giúp 'chương trình mềm dẻo, linh hoạt để thay đổi hơn' và tăng khả năng tái sử dụng.

2.2. Tính Kế thừa Inheritance để tái sử dụng mã

Tính kế thừa trong VB.NET là một đặc trưng cơ bản cho phép tạo ra một lớp mới (lớp con - derived class) dựa trên một lớp đã tồn tại (lớp cơ sở - base class). Lớp con sẽ thừa hưởng toàn bộ các thuộc tính và phương thức (không phải là Private) của lớp cha, đồng thời có thể mở rộng bằng cách thêm các thành viên mới hoặc định nghĩa lại (override) các phương thức đã có. Ưu điểm lớn nhất của kế thừa là khả năng 'tái sử dụng class đã được kiểm nghiệm', giúp tiết kiệm thời gian phát triển và làm rõ ràng cấu trúc phân cấp của các đối tượng trong hệ thống. Ví dụ, một lớp GraduateStudent có thể kế thừa từ lớp Student, giữ lại các thuộc tính chung và thêm vào các thuộc tính riêng như ThesisTitle.

2.3. Sức mạnh của Tính Đa hình Polymorphism và Trừu tượng

Tính đa hình trong VB.NET (Polymorphism), có nghĩa là 'nhiều hình dạng', cho phép các đối tượng của các lớp khác nhau phản ứng với cùng một thông điệp (lời gọi phương thức) theo cách riêng của chúng. Điều này thường được thực hiện thông qua kế thừa và ghi đè phương thức (Overriding). Một biến tham chiếu của lớp cha có thể trỏ đến một đối tượng của lớp con, và khi gọi một phương thức, phiên bản của lớp con sẽ được thực thi. Tính trừu tượng VB.NET liên quan chặt chẽ, cho phép định nghĩa các lớp và phương thức trừu tượng (sử dụng MustInheritMustOverride). Lớp trừu tượng không thể khởi tạo đối tượng, nó đóng vai trò là một 'bản hợp đồng' mà các lớp con cụ thể phải tuân theo và triển khai chi tiết, giúp tạo ra một kiến trúc linh hoạt và dễ mở rộng.

III. Kiến trúc MVC trong VB

Phần này giải thích chi tiết về kiến trúc MVC (Model-View-Controller) và cách nó được áp dụng trong các ứng dụng ASP.NET MVC VB.NET. Nội dung sẽ phân tách rõ ràng vai trò của từng thành phần, luồng xử lý của một yêu cầu từ người dùng, và lợi ích của việc tách biệt logic nghiệp vụ, giao diện người dùng và điều khiển luồng. Hiểu rõ mô hình này là chìa khóa để xây dựng các ứng dụng web có cấu trúc tốt, dễ kiểm thử và bảo trì.

3.1. Phân tích vai trò của Model View và Controller

Mô hình Model-View-Controller chia một ứng dụng thành ba thành phần chính có liên kết với nhau. Model đại diện cho dữ liệu và logic nghiệp vụ của ứng dụng. Nó chịu trách nhiệm xử lý, lưu trữ và truy xuất dữ liệu, hoàn toàn không quan tâm đến cách dữ liệu được hiển thị. View chịu trách nhiệm hiển thị dữ liệu cho người dùng. Nó nhận dữ liệu từ Model (thông qua Controller) và trình bày dưới dạng giao diện người dùng (ví dụ: trang HTML). View chỉ chứa logic trình bày, không chứa logic nghiệp vụ. Controller hoạt động như một bộ điều phối trung gian. Nó nhận yêu cầu từ người dùng, tương tác với Model để xử lý dữ liệu, sau đó chọn một View phù hợp để trả về kết quả cho người dùng. Sự tách biệt này giúp các thành phần có thể được phát triển và kiểm thử độc lập.

3.2. Luồng hoạt động của một request trong ASP.NET MVC

Trong một ứng dụng ASP.NET MVC VB.NET, khi người dùng gửi một yêu cầu (ví dụ: truy cập một URL), bộ định tuyến (Routing trong ASP.NET MVC) sẽ phân tích URL để xác định ControllerAction nào cần được thực thi. Controller tương ứng được kích hoạt, và phương thức Action được gọi. Bên trong Action, Controller có thể tương tác với Model để lấy hoặc cập nhật dữ liệu, ví dụ như sử dụng Entity Framework VB.NET. Sau khi xử lý xong, Action thường trả về một ActionResult, phổ biến nhất là một View. Controller truyền dữ liệu cần thiết (thường được đóng gói trong một đối tượng Model) cho View. Cuối cùng, Razor View Engine sẽ render View thành mã HTML và gửi về trình duyệt của người dùng để hiển thị.

IV. Cách xây dựng ứng dụng CRUD với OOP và MVC VB

Phần này tập trung vào ứng dụng thực tiễn, hướng dẫn từng bước xây dựng một ứng dụng CRUD (Create, Read, Update, Delete) hoàn chỉnh. Nội dung sẽ minh họa cách các nguyên tắc OOP trong VB.NET được áp dụng để thiết kế các lớp Model hiệu quả. Đồng thời, các ví dụ code mẫu VB.NET MVC sẽ được cung cấp để kết nối các thành phần Model, View, và Controller, tạo ra một ứng dụng web hoạt động đầy đủ chức năng.

4.1. Thiết kế lớp Model bằng nguyên tắc hướng đối tượng

Bước đầu tiên trong việc xây dựng ứng dụng là thiết kế các lớp Model. Đây là nơi các nguyên tắc OOP trong VB.NET phát huy tác dụng mạnh mẽ nhất. Mỗi thực thể trong cơ sở dữ liệu (ví dụ: Student, Course) sẽ được ánh xạ thành một lớp trong ứng dụng. Các thuộc tính của thực thể trở thành các thuộc tính (Properties) của lớp, sử dụng tính đóng gói để kiểm soát truy cập. Mối quan hệ giữa các thực thể (một-nhiều, nhiều-nhiều) có thể được biểu diễn bằng cách sử dụng các tập hợp (collections) và tham chiếu đối tượng. Tính kế thừa cũng có thể được áp dụng để tạo các lớp cơ sở dùng chung, ví dụ một lớp BaseEntity chứa các thuộc tính chung như Id, CreatedDate. Thiết kế Model tốt giúp mã nguồn trở nên rõ ràng và logic nghiệp vụ được thể hiện một cách tự nhiên.

4.2. Triển khai Action và View cho các chức năng CRUD

Với các lớp Model đã được thiết kế, bước tiếp theo là triển khai các Action và Controller. Mỗi chức năng CRUD sẽ tương ứng với một hoặc nhiều Action. Ví dụ, để hiển thị danh sách, cần một Action Index. Để tạo mới, cần hai Action: một Create (HTTP GET) để hiển thị form và một Create (HTTP POST) để xử lý dữ liệu gửi lên. Bên trong các Action này, Controller sẽ tương tác với cơ sở dữ liệu thông qua các công nghệ như Entity Framework VB.NET hoặc LINQ to SQL VB.NET. Dữ liệu sau đó được truyền đến các View tương ứng. Các View, sử dụng Razor View Engine, sẽ nhận dữ liệu này để hiển thị form nhập liệu hoặc bảng danh sách. Việc kết hợp này tạo ra một luồng xử lý hoàn chỉnh cho từng chức năng của ứng dụng.

V. So sánh C và VB

Phần cuối cùng mở rộng ra ngoài các khái niệm cơ bản, cung cấp một cái nhìn so sánh giữa hai ngôn ngữ phổ biến nhất trên nền tảng .NET là C# và VB.NET trong bối cảnh phát triển MVC. Bên cạnh đó, nội dung cũng giới thiệu một số kỹ thuật nâng cao như Dependency Injection, giúp xây dựng các ứng dụng linh hoạt và dễ bảo trì hơn, định hướng cho các nghiên cứu và phát triển trong tương lai.

5.1. Phân tích Nên chọn C hay VB.NET cho dự án MVC

Việc so sánh C# và VB.NET MVC là một chủ đề phổ biến. Về mặt kỹ thuật, cả hai ngôn ngữ đều có khả năng tương đương khi được biên dịch sang mã MSIL (Microsoft Intermediate Language) và chạy trên CLR (Common Language Runtime). Tuy nhiên, có những khác biệt về cú pháp và cộng đồng hỗ trợ. C# có cú pháp gần giống C++/Java, được ưa chuộng hơn trong cộng đồng phát triển web hiện đại, dẫn đến có nhiều tài liệu, thư viện và ví dụ hơn. Visual Basic .NET có cú pháp dài dòng và dễ đọc hơn, gần với ngôn ngữ tự nhiên, phù hợp cho những người mới bắt đầu hoặc các dự án bảo trì từ nền tảng VB cũ. Lựa chọn cuối cùng phụ thuộc vào kinh nghiệm của đội ngũ phát triển, yêu cầu dự án và hệ sinh thái công cụ hỗ trợ.

5.2. Kỹ thuật Dependency Injection DI trong MVC

Dependency Injection trong MVC là một kỹ thuật nâng cao giúp giảm sự phụ thuộc cứng giữa các thành phần. Thay vì một Controller tự khởi tạo các đối tượng dịch vụ (service) mà nó cần, các đối tượng này sẽ được 'tiêm' (inject) vào Controller từ bên ngoài, thường thông qua một DI Container. Nguyên tắc này tuân thủ nguyên lý Inversion of Control (IoC), giúp mã nguồn trở nên linh hoạt hơn, dễ dàng thay thế các thành phần và đặc biệt là dễ dàng viết unit test. Việc áp dụng DI giúp tách biệt rõ ràng các mối quan tâm (Separation of Concerns), làm cho ứng dụng ASP.NET MVC VB.NET trở nên chuyên nghiệp và dễ bảo trì trong dài hạn.

10/07/2025

Trích đoạn nội dung tài liệu

Chương I. AP TRINH HUONG DOI TUQNG TRONG VB.NET 11G iệu + VB.Net là một ngôn ngữ lập trình hường đổi tương (OOP object-oriented programming) + lrong lập trình hưởng đối tương cổ hai khấi niệm quan trọng là elass(lớp) và ‘object di trgmg). + Class 1a mt ting quit hoa (bd bat de chi ted) eta et hue the trong thể giới thực hoặc do, LLL Class la gi? + Cluss thường được mô tả như là một mô hình họäc thiết kế mô hình qua đó Object (dỗi tượng) có thể được tạo + OOP thươ ding class dé bao boc (che chỉ ti encapsulate) cba instance xariables (dữ liệu) và method (phương thức) 1. + Giả xử ta cần "cải đặt” các hình chữ nhật trong một chương trình.

Ta sẽ phẩntích tìm ra những thuộc tỉnh và hành động chung nhất mà một hình chữ nhật nối shúng phải có. Tạ sẽ "bao bọc”."che giấu chỉ tiết” thuộc tỉnh và hành động này trong mat lp Class Rectangle Class Rectangular [Height As Double Width As Double _place As Integer y_place As Integer Ku SetHeight(value As Double) hub SetWidth(value As Double) tunction Area() As Double unction Perimetter() As Double Phương thúc Sụb MoveTo(X As Inleger.Y As Integer) tub Draw(LineColor As Inleger.BackColor As Integer) Sub IncementSize( wBias As Double.hBias As Double Khởi tạo đối tượng. Sau khí khai bảo một Class. chúng ta có thể khởi tạo (instantiate) các đổi tương, từ nó, Các đối tượng có thể truy cập và sử dụng các thành viên (dữ liệu.

phương thúc) cỗ aceess modifier là Publie. Lập hợp các thánh viên di fi và phương thức Publie gọi là "giao điện” của một lớp. Cluss là khuôn mô hình tạo nên đối ương. Classis ao bọc cả dữ liệu (instanee variable.

data member,property. lẫn hành động (method.) “Có thể khởi tạo các đổi tương thật sự từ các Class đã dược khai báo. Các đổi tương là mình dụ (instanee) của một class có thể truy cập và thực hiện. ắc thành viên (dữ liệu phương thie.) ¢6 acess modifier public.

Class é{s Objects Giống như Khuôn lâm bánh: Những cải bánh thất sur Hình lì 1. Khai báo lớp VB.net [Private|Protected|Public] Class <Tén Class> Biển thể hiện + [Private|Protected|Public] mtenbien As <kiểu dữ liệu> “Thuộc tính (Property) + [Private[Protected|Publie] Property ten Thuoetinh() As < kigu di liu Truy xuất gi trị của thuộc ính (truy xuất đến gi tr của biển) Get » Return mtenbien End Get — "Gần trị cho thuộc tính tức giá trị cho biển Set (ByVal Value As String) » mtenbie End Get + End Property Phương thức (Method) + [PrivateProtected|Publie] Sub <tén thu tye>({<ds ede tham s6>)) + End Sub + Hoặc + [Pris tc|Protected|Public] Function <tén him>(|<ds cae tham sé>|) Return <gia i> + End Funi + End Class 1.3 Bài Toán: Cần thiết kế I lớp tượng trưng 1 thời điểm CTime 1.1 Xác định các tập thực thể cần thiết kế. Mùi thời điểm cụ thể (1:30:20).2 Xác định các thuộc tính (cần thiết, chung) của các thực thể.Second= 16 22:0:1 9 Hour=22,Minute=0,Second=1 1. (Thiết kế Class CTime.

a "Khai báo các instance variables “Trờu tượng hóa là quá trình trờu tượng những cái chưng nhất.4 Xác định construetor(phương thức xây dựng) và các phương thức khác liên quan t6i thiét Lap gid trj cho instance variables. Mỗi Class có một hoặc một i constructor: Là phương thức xây dựng. được gọi một cách tự động khi một đối tương được khởi tạo từ Class Dũng để khởi tạo (instantiate) đổi tượng cho class Thiết lập giá trị ban đầu cho cde instance variables, Ôn oe Publ Sub New) CN. hme Sata ge, Del Pai Seth Mane) End Sub ub biel minute Ae rng?) End Sub Phe SubsetSecon&Vloncond htntoge) End Sub Hình L3 1.5 Xác định các hành động có thể thực thi với thực thê,đối tượng.

Public Class CTimevi Public Function toStandardTime() As String Public Funetion toUniverslTime() As Sting Hinh 14 1. Sử dụng lớp trong các đổ án khác. =_ Biển dịch lớp thành tập tin thu vign ‹dH = _ Lâm thễ não sử dụng class trong các ứng dung? Server Client inh 15 1.7 Khởi tạo một đối tượng từ một class + Cú pháp: Dim anObject As New ClassName( -Jumei Vidi: Hinh 1.6 Minh họa các phương thức.setHour(15) ⁄ ati + Gol aTime. Thực thi kiểu dữ liệu trừu tương Time với Clas + Sự tách biệt mình bạch giữa "phí sử dụng client” và "phía cung cấp server" làm, cho chương trình: Mềm dẻo, nh hoatdé thay d6i hom, Vige ái sử dụng các class cho phép RAD (Rapid Application Development) lam ting ki tăng sản x ft (productivity).

Hệ thống chương trình là sự tương tác của các Objet độc ip hoat ding dũngdễ lập trình, báo tì và gỡ rỗi + _ Sự tách biệt mình bạch giữa "phía sử dụng lien và "phía cụng cắp srxer" làm, cho chương trình + Mam dễo nh họađễ thay đổi hơn. + Vige ải sử đụng các class cho phép RAD (Rapid Application Development) lim ting kha nding sin xuit (productivity), 1S Hoat vi Class. “Các thành viên (dữ liệu & phương thức) của một Class có hoạt vì Cluss và có thể được truy cập bởi các thành viên khác của Class. “Các thành viên Publie có thể được tham chiều từ các đổi tương eta Class, + _ Các biển của các method cỏ họat vi cục bộ trong method (block scope).

Truyc các thành viên. + _ Nỗ lực từ một đối tương khởi tạo từ một Class truy cập vào thành viên Private ua Class sé gay ra một lỗ lập trình, VD: Trong Client sir dung Class Time Dim aTime As Time = few Time() aTimemHour=7. “gay ra lỗi ‘Tom tit Access Modifier. 16 Constructor (Phương thức khởi tạo ) Chúng ta dùng Constructor để khởi tạo giá trị cho cắc instanee variable, Constructor ty động được gọi (invoke) khi có một đổi tượng được khởi tạo.

Nếu không cỏ construetor nào trong khai bảo của Clas thị VB.NET s@ ding «onstruetor mặc định (defalut constructor) va khai tạo giả trị ngằm định cho các instance variable, 1. 1 ads 6i 'onstructor (Overload construetor. ) Trong một Class. có thể có nhiều constructor (averloaded constructors) cung, sắp nhiễu cách đ khối ạo đối tượng, (Cae consrutor có cùng tên New chỉ khác nhau danh sich các tham số, Các conamiclor là Sub và không trí về gỉ ea Túy thuộc vào danh sách đổi số cung cấp lúc khởi tạo đổi tượng.NET sẽ chọn construelor thích hợp, 2 VíDụ Fig, Ro: CTime2.vb Represents time and contains overloaded constructors, Class CTime? 4.

“Ucelare Integers for hour, minute and second vate mllour As Integer ‘0-23 vate mMinute As Integer "0 - 59 vate mSecond As Integer " 0 - 59. “constructor initializes each variable to zero and 10.” ensures that each CTime? object stars in consistent tate 1. Publie Sub New) 12.End Sub, 14° Cime2 constructor: hour supplied: 15." minute and second default to 0 16, Publie Sub New(ByVal hourValue As Integer) 17.Setlime(hourValue) 18, End Sub‘ New 19." Cig constructor: hour and minute supplied: 20," second detaulted to 0 21. Publi Sub New(ByVal hourValue As Integer.

22, ByVal minuteValue As Integer) 28. SetTimethourValue, minuteValue) 24, End Sub" New 25." CTime2 constructor: hour, minute and second supplied 26. Publie Sub New(ByVal hourValue As Integer. ByVal minuteValue As Integer, ByVal secondValue As Integer) 28, SetTime(hourValue, minuteValue, secondValue) 30." CTime? constructor: another CTime2 object supplied 31.

Public Sub New(By Val timeValue As CTime2) 33. SetTimetimeValue mHour, tìmeValue." set new time value using universal time 35." pertrm validity checks on data; 36." set invalid values to zero 37. Public Sub Set ime(Optional ByVal hourValue As Integer 38. Optional ByVal minuteValue As Integer ~ 0, 39.

Optional ByVal secondValue As Integer = 0) 40." perform validity checks on hour, then set hour 4L-If (hourValue >= 0 AndAlso hourValue < 24) Then ml our = hourValue Else mtfour= 0 43.’ perform validity checks on minute, then set minute 44.1F (minuteValue 0 AndAlso minuteValue < 60) Then Minute = minuteValue Else mMinute = 0 48." pertonm validity checks on second, then set second 47.1f sccondValue >= 0 AndAlso secondValue < 60) Then mSecon secondValue 48, Else mSecond = 0 49.End Sub' SetTime SI." convert String to universal-time format $2. Public Fun ion ToUniversalString() As 53.End Function ' ToUniversalString 55." convert to String in standard-time format '56,Public Function ToStandardString() As String 51.Dim suffix As String =" P 58, im format As String = "{0):(1:D2)=(2:D2)" ‘59. Dim standardHlour As Integer 60," determine whether time is AM or PM. If mllour< 12 Then suffix= " AM" 62.

convert from universal-time format to standard-time format 64. Else standardHtour 'Hour Moá 12 66. Return String Format(format, standardHour, mMinute, mSecond) & suffix ind Function * ToStandardSiring End Class’ CTime2 L.vb Demonstrates overloading constructors.Forms 4, Module mod TimeTest2 ‘ub Main() 6, ‘use overloaded constructors Dirm time! As New CTime2() 8. Dim time? As New CTime2(2) 9.

Dim times As New CTime2(21,34) 10, Dim times As New CTime2(12, 5.42) MD timeS AsNew CTime2(27, 74,99) Dim time6 As New CTime2(timed)’ use timed as initial value 13. Const SPACING As Integer = 13 spacing between output text 14." invoke time! methods im output As String ~ "Constructed with: * & vbCrI.1 a _ timel; all arguments defaulted” & vbCrL& _ 17." invoke time? methods 20, output &= vbCrLf & _ ime2: hour specified; minute and second defaulted” & _ 22.VoLniversalString() & vbCrLf& Space(SPACING)& _ 24-time?:FoStandardString) invoke time3 methods 26, output &= VOCHLE& 27." time: hour and minute speci sd: second defaulted” & _ 28." invoke timed methods 31.output vbCrLf & - med: hour. minute and second specified” & _ 33. vbC#LL& Space(SPACING) & times.

vbC#L & Space(SPACING) & timet." invoke timeS methods 1X6. output &= vbCHL ER _ ¥7. minute and second specified” & 38." invoke time6 methods 4 output &= vbCHLER + time: Time2 object timed speci " & vOCrLI & 4 Space(SPACING) & time6. ToStandardString() 45 MessageBox,Show(ourput 46.

“Demonstrating Overloaded Construct 4 End Sub’ Main 48 End Module‘ modTimeTest2 Demonstrating Overloaded Constructors [XÌ Constructed with: ‘ume1: all arguments defaulted 0:00:00. 12:00:00 AM time2: hour specified; minute and second defauited 2:00:00 2:00:00 AM 3: hour and minute specfied;second defauted. 21:34:00 9:34:00 PM time4: hour, minute and second specified 12:25:4 12:25:42 PM time5: hour, minute and second specified 0:00:00 12:25:42 PM Hin 1 Đùng overloaded Constructors * use overloaded constructors Dim time} As New CTime2() > 0 tham sé duge goi Dim time? As New CTime2(2) > | tham sé được gọi Dim time} As New CTime2(21, 34) > 2tham sé duge gọi Dim timed As New CTime2(12, 25,42) > 3 tham số được gọi Dim times As New CTime2(27, 74.99) > 3 tham số được gọi Dim time6 As New CTime2(times) > Copy "use times as initial value Minh hga overloaded constructors Tạo ra một Console appication Test - Thêm vào ứng dụng Test class CTimev2 với 5 construetors có chữ kí khác nhau. + Viễt code trong module của Test sử dụng class trên.

Nhược điểm của instance variables. + Aeeess Modifier của các instance variables nên là Private.Khỏng thể truy cập &: cắn giả trị cho các instance variables ciia mot déi tượng một cách trực tiếp. + Chang ta ao ước có thể dùng cú pháp anObjectinstanee, variable để truy cập Sede sắn gỉ 1. Thuộc tính của Class.

Net khắc phục điều này bằng khải niệm Property(thuge tinh). Mot property gắn với một instance variable và cung cấp: Get accessor cho phép truy cập giá trị Set accessor cho phép thiét lip gia r. mHour Hour mMinute » Minute mSecond ~ Second iT HU VIEN 19 ‘A anObj.Hour=x mHour-x nObj.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ