怎么理解php的类,php 类与类对象的理解

类(Class):是一些变量与一些使用这些变量的函数的集合。

可简单理解为函数和变量的集合,或变量和函数的定义的集合。

语法是:

class Class_name //习惯上类的第一个字符为大写,并且必须符合变量的命名规则。

{

//函数与变量的集合(一些变量(类成员)和函数(行为方法)的定义)。

}

数据成员(变量)在类中使用"var"声明来定义。

在给数据成员(变量)赋值前,它们是没有类型的。

一个数据成员(变量)可以是一个整数,一个数组,一个相关数组(Associative Array)或者是一个对象。

类:是概念,是抽象的。

类的对象:是具体的事物,是物体,是实实在在的东西,是符合类的概念的具体事物。

类:是一段程序,一块代码,它总结了它的对象的一些共有的特点。

类的对象:是类的实例,就是说它符合类的特征。

类和类的对象:

有时是不用类的名称来称呼一个对象,而是直接使用对象的名称。

例如我家有只狗,它的名字叫小白,这里的狗是类名称,而小白就是对象的名称。

既然它要叫小白而不叫小黄,小黑,一定是它本身有不同于其他狗对象的地方,比如说毛发的颜色。

毛发的颜色,主人是谁等等都是用来描述这只狗的东西,我们称之为属性。

属性是用来形容一个实例对象的,有了这些属性,世界上每个对象都不相同。

每个对象也有它们自己的行为或者是使用它们的方法,比如说一只狗会跑会叫等,这些行为称为方法。

属性是对象静态的一面,用来形容对象的一些特性,方法是对象动态的一面,可使用这些方法来操作一个对象。

属性和方法合称为这个对象的成员,它们是构成一个对象的主要部分,没有这两样东西,对象就没存在意义了。

哪怕只是一粒石头,或者它没有什么操作的方法,但也有描述它的属性。

也存在没有属性和方法的类,不过它的对象没什么作用,无法辨别和使用它,这种类的存在通常只有一个用途,就是作为一种规则,然后遵守这个规则的对象,才能去做某些特定的事情。

对象是由属性和方法两个基本的元素的构成的。

对象的属性是指对象的背景色,长度,名称等。

对象的方法是指对属性所进行的操作,就是一个对象自己所属的函数。

对象中包含属性与方法,其中的属性用来描述每个对象的特征,或者说,只要确定了属性,就确定了对象。

对象中的方法描述了对象的操作,这些操作可以包括属性的设置、读取、显示等。

因此,在实现以上所定义的对象时,需要提供完整的属性与必需的方法。

对象的属性是变量,必须使用->运算符来引用它们,不需在属性前使用美元符$。

访问对象中的成员,是通过“对象->成员”的方式访问。

对象的内部成员间的调用

$this称为伪变量,当一个方法在对象内部调用时使用。

(在定义类时,类的内部成员间相互调用时使用$this来表示本类、此类。通常在定义类中的变量和函数时会出现)

PHP提供本对象的引用$this,每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用。

this的本意就是“这个”的意思。

$this->属性

$this->name; $this->age; $this->sex;

$this->方法

$this->say(); $this->run();

类有一种称为构造函数的特殊方法。

当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。

构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( )。

这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。

格式:function __construct ( [参数] ) { ... ... }

在一个类中只能声明一个构造方法,而且只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法。

通常用它执行一些有用的初始化任务,比如对属性在创建对象的时候赋初值。(初始化数据,赋给初始值)

例如:movie类包涵了一部电影的基本属性:电影名、导演、主演、国家或地区和剧情介绍,这些都可以写进构造函数__construct中。

例子:class SimpleClass

{

// 成员声明

public $r = 2;

public $arr = array();

// 方法声明

public function __construct() { //构造函数,初始类里最重要元素、方法

echo "结果:";

}

private function oneVar(){

for($i=0; $i<=5; $i++){

$this->arr[$i] = ++$this->r;

}

return $this->arr; //返回本类中的成员变量

}

public function thisVar() {

print_r($this->oneVar()); //调用本类中的方法

echo "
";

}

}

class SunClass extends SimpleClass { //子类,将继承父类的一些特性

public function otherVar() {

SimpleClass::thisVar(); //静态调用simpleclass类中的thisVar方法,好处是不用实例化

}

public function anotherVar() {

echo "我就是我!";

}

}

SunClass::anotherVar(); //不用实例化的调用

$a = new SunClass(); //实例化,创建一个对象

$a->otherVar();

$b = new SunClass(); //对同一个类实例化,创建另一个对象

$b->anotherVar();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值