类是一种思想,是编程的一种哲学.各种编程语言表现这种思想的方式不同,但意义上是一致的.
理解类,首先要理解面向对象.这个可以看书.推荐看thinking java的第一章.
以前上政治课时老师曾经说"万事万物都是客观的",这里我们可以说"万事万物都是对象".
类,对象.这样的思维是比较人类的思维.
简单的例子.
世间万事万物中.有一个组"东西"因为具备某一些共同特征和行为,我们就叫它 -- 人类 class human
这个类具备一些共同的特征.如,名字(name)性别(sex)年龄(age)...等等.又具备一些共同的行为.如,走路(walk)说话(say)...和fuck...(>_<)!
我们如果用程序来描述就是
class human
{
var $name;
var $sex;
var $age;
function walk(){}
function say(){}
function fuck(){}
}
程序中的function就是用来描述行为.这个时候就不能简单的叫它为函数了.因为函数不属于任何一个类.而这里的function.我个人宁愿称它为"动作"."行为".抛开语法先.我们会发现一个程序用这样的思想去描述我们的世界,是不是很接近我们人的思维了? 是不是可以让我们更清楚的去归纳,整理我们遇到的事物?
编程,我们大多首先想的是我们要做一个什么东西.这个东西由什么组成,它具备那些功能.这个就是oo的初步.
如果我们偏向用功能来思考,维系,主导程序的设计,那么这个估计就进入 面向过程的思维了.这种思维是--"先做什么再做什么,如果出现情况就怎样..." 这个是很具体的事情.很琐碎的.当然也很重要.自然,思考起来也比较麻烦.描述起来也比较令人费解.特别是你自己之外的人.
首先,我们要宏观些.站在高处看待事物.思考它的特征和行为.归纳整理.把它们分门别类.比如,编写一个留言本.我们当然知道这个留言本需要填写一个表单,提交一个表单,然后那边接受提交的内容.入库.再从库里取出来.show it....这是过程.这个是留言和看留言的过程.是面向过程的思想.
如果是OO的思想... 简单滴~~我们可以这样看.留言本.留言这东西的特征.有编号,留言者,留言时间,留言内容.它行为有接收留言.保存留言.显示留言.Ok..我们试试归纳它为一个类.
class message_board
{
var $id;
var $writer;
var $create_time;
var $content;
function recMessage(){}
function saveMessage(){}
function showMessage(){}
}
这个就是一个大概的留言本类.我们"总结"出了它特征和行为,描述好它的行为.这是一个具备贡献性的工作.当你自己或其他人需要实现留言本功能时.就可以直接使用它了.你可以直接告诉他.new一个object.然后收留言时用recMessage.保存时用saveMessage.至于里面怎么实现就不用罗嗦了.
另外,如果有需要留言者也可以总结为一个类class wirter.这个类和class message_board之间有交互.写留言板这个动作用过程来想又是写啊,post啊的... 这个是具体实现.有点粗俗.我们要高端点....