面向对象---特----性

 

面向对象:是基于面向过程的一种思想。

面向过程:强调的是功能行为。 

面向对象:将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。 

面向对象的三大特性:封装,继承,多态

封装   将功能封装成一个个独立的单元,减小耦合,避免牵一发而动全身,方便对程序的修改

继承   代码重用,减少编码量,间接减少维护成本。

 

封装好处:

       1.将变化隔离;

       2.便于使用。

       3.提高重用性。

       4.提高安全性。

封装原则:

       将不需要对外提供的内容都隐藏起来。

       把属性都隐藏,提供公共方法对其访问。

private:关键字

       A:用于修饰成员变量和成员方法。
       B:被修饰的内容在其他类中是不可以被访问的。

注意:私有仅仅是封装的一种体现而已。

 

      第一种理解方式:

封装:

   首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,

封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.

比如人这个东东,可用下面的方式封装:

{

年龄(属性一)

身高(属性二)

性别(属性三)

 

做事(行为之一)

走路(行为之二)

说话(行为之三)

}

 

继承:

由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们

知道,这并不是万能的,有些事物有共性,但还存在区别,比如教师,简单封装起来如

:

 

教师{

 

年龄(属性一)

身高(属性二)

性别(属性三)

 

做事(行为之一)

走路(行为之二)

说话(行为之三)

 

 教书(行为之四)

}

 

上面对"教师"的封装,与对"人"的封装基本上差不多,只是多了一个特征行为:教书,

教师有与人一样的共性, 但我们不能说"人教书",也就是不能把教书封装到"人"

之中去,教书是教师的特征行为之一. 为了省事地封装教师(代码的复用,这只是继

承存在的原因之一), 可以让教师去继承人,

:

教师 extends 人{

    教书(

        行为之三

        )

}

这样,我们就不用重新定义那些已经被"人"这一个类所封装的那些属性与行为了,

而只需要使用继承的方式,在人的基础上拓展教师专有的行为,即"教书"即可把教

师描述出来;这样的结果, 即是教师也同时拥有"人"之中所封装的一切属性与行为,

还拥有自己的特征行为"教书".

 

 

一、封装性
封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。

php提供了三种访问控制修饰符
public 表示全局,公共的,本类内部,类外部,子类都可以访问
protected 表示受保护的,只有本类或子类可以访问
private 表示私有的,只有本类内部可以访问
以上三种修饰符既可以修饰方法也可以修饰属性(变量),方法如果没有访问修饰符则默认是public,成员属性必须指定访问修饰符。

 

 

 

 

 

 

 

posted on 2017-08-17 21:13  骄傲做自己  阅读(166)  评论(0编辑  收藏  举报

导航