php面向对象笔记

1.程序都是要解决真实的业务逻辑!而且现实的业务逻辑,都是动作的主体在发出动作而不是动作独立出现的

2.语法

3

.

4访问属性: $object->stu_name;

访问方法:对象->方法名();

 

在方法中,访问对象$this

 

$this,这个,这个对象。调用该方法的对象!

 

$this 就是一个方法内的局部变量!特殊在,方法被对象调用执行时,php会自动确定是哪个对象调用的该方法,会使用该对象为方法内的$this赋值

5.

 

构造方法,__construct()

 

在实例化类得到对象时被自动地调用!

 

主要承担的工作是初始化对象属性!

如果没有定义__construct()可以不用执行!

但是一旦定义了构造方法,那么构造(实例化)的过程,一定要包括这个调用构造方法的过程(构造方法一定会执行)。

 

TIP:有时也称,实例化对象为构造对象!

构造方法可以自动被调用!

注意

1, 构造方法可以是一个别的名字

一个与类名相同的方法,也可能是构造方法!

1, new class_name时:

new Student

new Student();

取决于是否存在构造函数的必要参数!

6.

析构方法,__destruct

与构造方法相对,表示在对象被销毁时,自动调用的方法!

对象被销毁,但是对象所占用的资源不一定完全被销毁!

 

在对象被销毁时调用,作用是,用于释放对象所占用的额外资源!而不是对象本身!

注意:

1对象在什么时候被销毁?

在用户脚本结束后,所有的资源包括对象都被销毁!

 

2保存对象的变量被提前unset

 

1, 保存对象的变量,被赋予了一个新的值!

7

如果一个方法或者函数参数过多,或者参数不能确定时:会选择使用数组的形式完成处理:

在构造方法内,先完成对属性的初始化!

升级:对参数选项增加一个默认值的概念,类似于端口,编码,可以在常规情况下实例化时省略!

在构造方法内,对属性初始化时,对默认值做处理:

8

类的静态成员,static

静态成员,指的是逻辑上被所有的对象所共享,属于类的成员称之为类的静态成员!

分成静态属性和静态方法

保存数据的是静态属性,执行功能的静态方法!

9

声明

额外增加一个 static 关键字!

属性:

方法:

10.

访问

->访问对象成员,静态为类的成员

 

因此,应该使用类访问,

:: 成员!

::,静态访问符,类访问符(范围解析操作符)

 

 

在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。

 

另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this。

 11.

类似于$this,同样存在一个self关键字(注意没有$),在类中,代表当前类!

$this:这个对象, $this->

self:类自己,self::

 

12.

注意

1, 访问上,静态成员只能使用::静态访问符号访问!

典型的,::前应该是类,类内可以使用self

但是,php支持: 对象::静态成员!

 

尽量不要这么写!

 

1, 访问上,静态成员使用类访问,而非静态成员使用对象访问。

但是,问题出现在 方法上!

测试1,使用类访问,静态与非静态方法:

 

测试2,适用对象访问:

 

结论:‘无论是静态方法,还是非静态方法,都可以使用类或者对象来访问。那么静态方法与非静态方法的意义在于哪里?

现象的原因:方法是可执行性代码的集合,针对多个对象都是一致的!

区别在哪?

在于$this的使用上!

只有在使用对象调用非静态方法时,才可以使用$this!

静态静态方法,无论如何也不能对$this做处理

而非静态方法,只有确定了对象,才能确定$this的值!

11,

类常量,const

 

在类内定义,属于类的常量!

 

定义

 

使用关键字 const声明!

而且,没有访问修饰限定符。

12,

访问

使用类访问,与访问静态成员类似:

::常量名.

 

总结

类中,一共只有5种语法:

属性,方法,静态属性,静态方法,类常量

 

posted @ 2016-08-28 10:59  杰杰顺利  阅读(460)  评论(0编辑  收藏  举报