new
就是实例化,比如实例化一个类,你才能访问,,
好比,你是张三,把你的地址告诉了我,我在能找到你家在哪,这个过程就可以称为实例化.
使用New关键字建立一个新的对象和用它属的类来定义是一样的.New关键字可以被用作来建立一个窗体、类模块以及集合的实例.用户在设计的时候建立的每一个窗体都是一个类.New关键字能够用来建立一个类的实例.
可以通过以下步骤来建立一个类的实例:
(1)在窗体上画一个按钮和几个其他的控件.
Dim
x
AS
New
Form1
x.Show
f
As
f=New
f.text="hello"
f.Show
使用New关键字可以从类模块中定义的类中建立一个新的集合和对象,要知道它们怎样工作,可以参考下面的例子:
(1)建立一个新的工程,并且在一个名为Form1的窗体上画一个按钮控件.
Class"给工程添加一个类
PUblic
Class
ShowMe
Sub
ShowFrm()
frmNew
frmNew=New
frmNew.Show()
frmNew.WindowState=1
End
Button1_Click(Byval
sender
System.Object,_
Byval
System.EventArgs)
clsNew
ShowMe()
clsNew.ShowFrm()End
New关键字只能用来建立一个类的对象,不能建立一个基于基本的数据类型的对象,例如Integer.而且,不能建立一个基于一个具体对象的对象.例如,下面的代码根据一个名为SomeClass的类,建立了一个名为Objx的对象,面后又错误地企图根据对象Objx再建立一个其他的对象:
Objx
SomeClass()
Objx()
以上代码是非法的.
呵呵##~
代码已测试.
第一段:测试需要的INI文件.名称为"setinfo.ini",存放路径为你解决方案里"Bin"文件夹的"Debug"文件夹里.
内容:
[Location]
pnlTime.Location.Y=0
[TopMost]
Top=True
第二段:操作INI文件的类.新建一个类,类中内容为:
Public?Class?Class1
(?_
ByVal?lpApplicationName?As?String,?_
ByVal?lpKeyName?As?String,?_
ByVal?lpDefault?As?String,?_
ByVal?lpReturnedString?As?String,?_
ByVal?lpFileName?As?String?_
End?Class
第三段:界面代码:
Imports?System.IO?'for?path
Public?Class?Form1
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
getINI()
End?Sub
Private?Sub?getINI()
Dim?iniclass?As?New?Class1?'
Dim?myBf?As?String?'get?set_info?开辟存储的内存
Dim?myFN?As?String?'配置文件的文件路径
myFN?=?Path.Combine(My.Application.Info.DirectoryPath,?"setinfo.ini")
Dim?myAN?As?String?'Application_NAME,也是Section名称
myAN?=?Me.TextBox1.Text
Dim?myKN?As?String?'KEY_NAME,关键字名称
Class1.GetPrivateProfileString(myAN,?myKN,?"",?myBf,?myBf.Length,?myFN)?'调用读取INI文件的操作
第四段:测试截图如下
不熟悉VB,如有不妥的地方请包涵!
Public Class Stack
Dim aryData() As Integer
Sub New(ByVal Num As Integer)
Dim aryData(Num) As Integer
End Sub
Function Pop() As Integer
If (aryData.Length = 0) Then
Return 0
Else
Dim a As Integer
a = aryData(aryData.Length)
Return a
End If
End Function
Sub Push(ByVal n As Integer)
For Each i As Integer In aryData
aryData(i) = n
Continue For
Next
Sub PrintStack()
Print(aryData(i))
End Class
Friend是用来在声明中定义访问级别的.
Public:公用,同一项目中任意位置的代码,引用该项目的其他项目,以及由该项目生成的任何程序集.
Protected:保护,同一个类内部或从该类派生的类中访问元素.
Friend:友元,从同一程序集内部访问元素,而不能从程序集外部访问.
Protected Friend:Protected 和 Friend 的联合,派生类或同一程序集内,或两者皆可.
Private:私有,仅可以从同一模块、类或结构内访问元素.
而所谓程序集的概念,可以理解为一个项目就是一个程序集,VS支持一个解决方案有多个项目,也就是一个解决方案多个程序集,比如项目A、项目B,项目A为启动项目.A要访问B首先要引用B,假设B里有个public的类myclass,类里有一个public的方法A和一个friend的方法B,按照前面说的访问级别的设定,myclass类的方法A在项目A中是可见的,而B却是不可访问的(Friend从且仅从同一程序集内部访问).这就是区别.
P.S MSDN给的程序集的定义繁琐而难于理解,题主可以自行查阅一下.
类,是面向对象思想的一个产物.它的用途,就在于把事物高度抽象.比如说游戏中的粉丝,你可以定义一个粉丝类,这个类,有自己的属性和方法,粉丝的生命值,等级,金钱,等等等等,它可以有自己的方法,比如,可以跳跃,可以死亡.类,本身并不能存在于内存之中,这就解释了对象的问题.类,实例化以后,对象诞生,真实的存在于内存之中.你把一个粉丝类实例化100次,诞生100个粉丝在游戏中.这个关系,你可以简单的这么理解.