5.如何实例化对象 我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然 我们类会声明了,下一步就是实例化对象了。 当定义好类后,我们使用new 关键字来生成一个对象。 代码片段 这条代码就是通过类产生实例对象的过程,$p1 就是我们实例出来的对象名称,同理,$p2, $p3 也是我们实例出来的对象名称,一个类可以实例出多个对象,每个对象都是独立的,上 面的代码相当于实例出来3 个人来,每个人之间是没有联系的,只能说明他们都是人类,每 个人都有自己的姓名,性别和年龄的属性,每个人都有说话和走路的方法,只要是类里面体 现出来的成员属性和成员方法,实例化出来的对象里面就包含了这些属性和方法。 对像在PHP 里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?内存从逻辑上 说大体上是分为4 段,栈空间段、堆空间段、代码段、初始化静态段,程序里面不同的声明 放在不同的内存段里面,栈空间段是存储占用相同空间长度并且占用空间小的数据类型的地 方,比如说整型1,,,,, 等等,在内存里面占用空间是等长的, 都是 位4 个字节。那么数据长度不定长,而且占有空间很大的数据类型的数据放在那内存 的那个段里面呢?这样的数据是放在堆内存里面的。栈内存是可以直接存取的,而堆内存是 不可以直接存取的内存。对于我们的对象来数就是一种大的数据类型而且是占用空间不定长 的类型,所以说对象是放在堆里面的,但对象名称是放在栈里面的,这样通过对象名称就可 以使用对象了。 $p1=new Person(); 对于这个条代码,$p1 是对象名称在栈内存里面,new Person()是真正的对象是在堆内存 里面的,具体的请看下图: 从上图可以看出$p1=new Person();等号右边是真正的对象实例,在堆内存里面的实体, 上图一共有3 次new Person(),所以会在堆里面开辟3 个空间,产生3 个实例对象,每个对象 之间都是相互独立的,使用自己的空间,在PHP 里面,只要有一个new 这个关键字出现就会 实例化出来一个对象,在堆里面开辟一块自己的空间。 每个在堆里面的实例对象是存储属性的,比如说,现在堆里面的实例对象里面都存有姓 名、性别和年龄。每个属性又都有一个地址。 $p1=new Person();等号的右边$p1 是一个引用变量,通过赋值运算符“=”把对象的首地址 赋给“$p1”这个引用变量,所以$p1 是存储对象首地址的变量,$p1 放在栈内存里边,$p1 相当 于一个指针指向堆里面的对象,所以我们可以通过$p1 这个引用变量来操作对象,通常我们也 称对象引用为对象。 6.如何去使用对象中的成员 上面看到PHP 对象中的成员有两种一种是成员属性,一种是成员方法。对象我们以经可 以声明了,$p1=new Person();怎么去使用对象的成员呢?要想访问对象中的成员就要使用一个 特殊的操作符“->”来完成对象成员的访问: 对象->属性$p1->name; $p2->age; $p3->sex; 对象->方法$p1->say(); $p2->run(); 如下面实例: 代码片段 从上例中可以看出只是对象里面的成员就要使用对象->属性、对象->方法形式访问,再 没有第二种方法来访问对象中的成员了。
推荐整理分享php面向对象全攻略 (二) 实例化对象 使用对象成员(php语言之面向对象编程 educoder),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php面向对象和面向过程,php面向对象优点,缺点,php面向对象优点,缺点,php面向对象的三大特征,php面向对象是什么意思,php 面向对象,php面向对象的三大特征,php面向对象是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!
php面向对象全攻略 (三)特殊的引用“$this”的使用 7.特殊的引用$this的使用现在我们知道了如何访问对象中的成员,是通过对象-成员的方式访问的,这是在对象的外部去访问对象中成员的形式,那么如
php面向对象全攻略 (四)构造方法与析构方法 8.构造方法与析构方法大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对
php面向对象全攻略 (五) 封装性 9.封装性封装性是面向对象编程中的三大特性之一,封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两