什么是面向对象?
人类把未知的事物进行和自己已知事物类比、归类。
经过先辈对未知的事物进行归类。
-----------------------------------
类比====》归类 万事万物皆对象
类《====》对象 类是对象的抽象,对象是类的实例
土豆-马铃薯-洋芋:洋人的东西,我们国内有芋头。所以叫洋芋。
-----------------------------------
类当中我们可以引出:
属性【定义事物的外观形状,或者和事物相关联的内容】
行为【当前事物可以做的事情,或者利用当前事物能做的事情】
所有这些内容都是绝大多数人都同意认可的。
-----------------------------------
OOA:《面向对象分析方法》
OOD:《面向对象设计》
OOP:《面向对象》
-----------------------------------
继承:
关键字[extend] [parent] [final]
描述:我们可以把继承叫做:重用(复用)
父类《====》子类 重写
-----------------------------------
封装:
关键字[public] [protected] [private]
描述:简单来说封装即隐藏。
多态(抽象):
关键字[abstract] [interface===>implements]
描述:变化的形态(同一个变量可以指定不同的形态)
PHP是一个弱类型。可以随便指定一个
-----------------------------------
抽象
关键字:abstract
接口
出现的目的:类里面定义函、数的模板。
关键字:interface
定义公共的静态常量。
-----------------------------------
$this(当前类的对象) class===>new static(当前类当中的静态资源) const(类当中定义常量) self(访问类内部的静态变量) ::范围解析操作符
类当中只能使用const定义常量
扩展出来的内容
传统定义来说,抽象只是多态里面的一种表现形式。
-----------------------------------
魔术方法
魔术方法不能直接被调用,一旦满足条件自动被调用
魔术方法总共有15个。
构造函数:创建时自动被调用。
析构函数:销毁时自动被调用。
//__get()方法用来获取私有属性 带一个参数
//__set()方法用来设置私有属性 带两各参数
-----------------------------------
类的自动加载
类的自动加载是指在外面的页面中并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。
为甚会使用类的加载?
__autoload魔术函数【只能一个】
spl_autoload_register函数【可以定义多个】
------------------------------------
类型约束
在做参数传递的时候我的类型是不固定的。在传入的时候我传A,但是不小心传入了B,这就会导致XX。
命名空间