原文在:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchooinvbnet.asp
什么是OOP
OOP 需要坚持四项基本原则.
抽象(abstraction),
封装(encapsulation)
多态(polymorphism), 比如:有好几个 司机对象,他们全有DRIVE 方法, 那么我们可以让不同的对象开不同的车. 有的开左驾的车,有的开右驾的车,有的可以手动挡,有的可以开自动挡. 但他们都用相同的方法 "DRIVE".
继承(inheritance),
VB.NET 的OOP
VB.NET 的OOP 和VB6的OOP是完全不一样的. VB.NET已经彻底的完全的支持四项基本原则,所以是彻底的OOP. (<至于VB6 OOP有那些不同, 我也没搞明白呢). 所以,VB.NET 里的STRING, INTEGER 也全是对象.
比如我们想知道INTEGER最小的数, 就用这个方法就行了.
Dim i As Integer
MsgBox(i.MinValue)
Integer 作为一个对象, 他有他的属性和方法. MinValue 就是他的属性.
定义一个类(CLASS)
VB6 是用Class Module定义类,一个类就要单独有一个Class Module. VB.NET 一个文件可以包含几个类。 这点和Java 是一样的。你甚至可以在类里面在创建类。 好, 先看个简单的,
Public Class CCustomer
End Class
这是两个类放在一个文件里
Public Class CCustomer
End Class
Public Class CContact
End Class
这是创建属性,
Private m_sName As String
Property Name() As String
Get
Return m_sName
End Get
Set(ByVal Value As String)
m_sName = Value
End Set
End Property
定义方法,
Public Function SayHello() As String
If Name <> "" Then
Return "Hello " & Name
Else
Return "Hello World"
End If
End Function
没有初始
Public Sub New()
' Perform initialization
Debug.WriteLine("I am alive")
End Sub
有初始
Public Sub New(ByVal sName As String)
' Assign the name
Name = sName
'Other initialization
Debug.WriteLine(Name & " is alive")
End Sub
清空一个对象, 这样就别让已经没用得对象占这 内存不走
有三个名词:Finalize, Dispose, IDisposable
应该用Interface 来执行Dispose 方法,
Implements IDisposable
Public Sub Dispose() Implements System.IDisposable.Dispose
' Perform termination
End Sub
创建和消毁对象
Private m_oCustomer as CCustomer
m_oCustomer = New CCustomer()
m_oCustomer.Dispose()
m_oCustomer = Nothing