对象就是能看到感到听到触摸到尝到或闻到的东西在这里我们这样“定义”对象是一个自包含的实体用一组可识别的特性和行为来标识
在面向对象的编程(oop)的编程方式用使用下面的两个术语
类这是对象的模板定义了对象的特性
实例这是一个真实的对象可以与之交互的东西
属性方法和事件
在OOP中下面的术语描述对象的特性
属性这是一个名次描述了某个对象的属性
方法这是一个动词描述了对象可以完成的工作或者希望它完成的工作
事件描述了对象为相应某个动作而执行的操作
在编程时对象的面向对象编程和面向对象设计的一部分它们具有非常大的优势许多人认为这是一个复杂的主题但实际上它非常简单可以用四个简单的术语来解释抽象封装多态和继承
抽象这是一个隐藏复杂性类的内部工作情况所以用户不必知道它的运作方式就像如果想要看电视就不必知道电视机时如何工作的只需打开电视机搜索频道即可on/off开关抽象了实际的操作在string例子里有一个trim方法它可以删除字符串尾部的空格同样不需要知道他是如何完成这个任务的只要知道它有这个功能即可
封装每个对象都包含进行操作所需要的所有信息这个对象称为封装因此对象不比依赖其他对象来完成自己的操作在术语TOupper()方法中string不必到其他地方获取信息来把所有的字符转换为大写
多态这个术语用于表示不同的对象可以执行相同的动作但要通过他们自己的实现代码来执行名称一样但底层实现的代码是不一样的
继承它定义了类如何相互关联共享特性的继承的工作方式是定义类和子类其中子类继承了父类的所有特性继承的重要性是它迫使类型相似的类具有一致性并允许共享代码如果决定创建一个新类就不必定义父类的所有特性下面我通过举上几个简单的例子说明一下注意这里强调的是一种思想如果在您开发ASP网站的时候能用一个类(基类)展开的话这是很有必要的(也是很有难度的)
我们先选择一个简单的例子
我们要显示经典论坛用户的信息当输入用户的ID以后能显示出该用户的一些信息这是一个过程可以这样考虑我们把用户当作一个对象他有的属性是ID性别积分权限实现的方法有显示这些信息ok这样写
Class blueidea
Private bnamebpointbsexblevel
end class这里先声明了一个名为 blueidea的类接着是一些私有变量用于存储blueidea类的属性这些变量在代码的外部不能访问这就是数据保护要定义这些变量使用了 property语句获得值间接的付给私有变量
Property Get getname
getname=bname
End Property
Property Let getname(nameid)
bname=nameid
If nameid="" Then
bname="没注册用户"
End If
End Property
Property Get getsex
getsex=bsex
End Property
Property Let getsex(sex)
bsex=killint(sex)
If bsex= Then
bsex="男"
Else
bsex="女"
End if
End Property
Property Get getpoint
getpoint=bpoint
End Property
Property Let getpoint(point)
bpoint=killint(point)
End Property
这里有个killint函数是判断数据合法性的它的原形是 Private Function killint(ikillstrkillsub)
If Not IsNumeric(i) Then
i=killstr
ElseIf i<= Then
i=killsub
End if
killint=Int(Left(i))
End Function
该函数功能很明确不再繁琐说
由于我们要通过积分判断用户级别这里定义了一个私有函数Private Function getlevel()
bpoint=killint(bpoint)
If bpoint< Then
blevel="初级会员"
ElseIf bpoint>= And bpoint<= Then
blevel="高级会员"
Else
blevel="终极会员"
End If
Getlevel=blevel
End Function我们要得是回送用户的信息必须定义一个public公用函数显示信息
Public Function showuser()
responsewrite("<h>以下显示<font color=red>"&bname&"</font>的资料:</h>")
responsewrite("<h>性别:<font color=red>"&bsex&"</font></h>")
responsewrite("<h>积分:<font color=red>"&bpoint&"</font></h>")
getlevel
responsewrite("<h>级别:<font color=red>"&blevel&"</font></h>")
End Function
End class
使用这个类的时候这样使用(我在这里写了一个表单处理的)
Set blueideauser=new blueidea
blueideausergetname=Trim(request("id"))
blueideausergetsex=request("sex")
blueideausergetpoint=request("point")