一、面向过程和面向对象
首先在面对面向对象时,我们可以先回顾一下
面向过程的特点:
效率高非常麻烦
简单
面向对象的特点:
1、执行效率比较低,相对于面向过程来说2、更好的组织或者管理我们的代码,具有良好的可读性。
3、代码可以更好的复用
4、使用起来比较简单,但是封装比较痛苦
5、可以让你提高自己逼格,
6、可以让你赚更多的钱,

1、探讨一下为什么学习面向对象
生活的角度:人类:抽象的概念 对象:每个具体的人:例如:黄晓明,刘亦菲等
类是抽象的概念 对象才是具体的事物
编码的角度:
类:是一种类型,不占用内存空间 对象才占用内存空间
2、类和对象
官方概念:类是对象的抽象, 对象是类的具象。
面向对象的三大特性:封装、继承、多态。(重点)
3、类的简单使用
如何通过代码来定义一个类:
类名命名规范
1、通过class关键词声明一个类,class后面就是类名2、类名采用大驼峰的命名法则
3、类名要有意义
4、一个类有成员属性和成员方法组成
5、大括号要另起一行
成员属性和成员方法
成员属性就是变量,在类里面叫做成员属性,成员属性的前面必须加上访问修饰限制符函数就是我们的成员方法,在外面怎么定义函数,在里面就怎么定义成员方法,若成员方法的访问修饰限制符是public,可以省略。
创建对象的方法:
得到对象的第一种方法 通过new关键词得到对象,类名后面的小括号可以加,也可以不加,推荐大家加上。得到对象的第二种方法 通过一个对象来创建另外一个对象(了解)
得到对象的第三种方法,通过实例化一个类名字符串得到
对象访问属性和方法
//通过对象如何去访问成员属性,若通过对象访问成员属性,成员属性前面的$符号必须去掉。$a->name = '黄晓明';
//通过对象访问成员方法
$a->eat();
4、魔术方法和this关键字
魔术方法:就是在特定的时机,自动触发的方法,不需要手动调用。
$this表示的是当前对象
不传递参数构造方法
传递参数构造方法
触发时机:当你实例化一个对象的时候,自动触发。
__destruct():析构方法
触发时机:当对象被销毁或者脚本执行完毕的时候,会触发。
5、访问修饰限制符
public:公共的,用public修饰的成员属性或者成员方法,在类的内部和外部可以直接使用。
pravite:私有的,在类的外部不能直接使用。可以通过在类的内部定义一些对外开放的接口,来访问成员属性和成员方法。
protected:受保护的;
6、几个常见的魔术方法
__construct:
触发时机是:当实例化对象的时候,自动触发。
触发时机是:当对象被销毁或者脚本结束的时候的,自动触发。
__get
触发时机是:当访问私有的成员属性的时候,会自动触发。参数是要访问的私有的成员属性
触发时机是:当设置私有的成员属性的时候,会自动触发,参数是要设置的成员属性的名字,要设置的值。
触发时机:当对私有的成员属性使用isset()或者empty()函数的时候,会自动触发,参数是私有的成员属性。
触发时机是:当通过unset()函数,销毁私有的成员属性的时候,会自动触发,参数是要销毁的私有的成员属性。
触发时机是:当把一个对象当做函数来调用的时候,会自动触发。
触发时机是:当var_dump一个对象的时候会触发,当不想让别人看到这个对象的真实的信息的时候,可以定义这个魔术方法
触发时机是:当调用一个根本不存在的成员方法的时候,会自动触发,参数:第一个是方法的名字,第二个参数是:这个方法所需要用到的参数。
7、继承:
认识继承:
生活上:继承自上一辈的财产
代码上:也可以实现继承。
php中的继承是单继承,一个子类只能有一个父类。
。。。。。。。。。。。。。。。。。更新中
实现继承需要用到的关键词是extends。