面向对象编程
面向对象编程不是技术,是一种思想而已。
面向对象编程: OOP (object oriented programming)
面向过程 和面向对象
面向过程:将一个事务分成具体的某系列功能,然后将一连串的功能连起来使用,从而解决某个问题
之前所写代码全部都是面向过程。
面向对象:将一个事务分成具体的某系列功能,会定义一个操作该事务的一个主体。所有的操作都是由该主体来发生。
计算机无法识别自然界的任何实体,通过面向对象的这种思想,将一些列的代码制作成类似自然界的实体的概念,让电脑能够识别。
面向对象几个基本概念
类:将某一些具有相同的功能和属性的东西,进行集合设计(抽象),包含了一类事务的属性和一些能力,同时对这些属性和能力进行包装,形成一个包装名,包装的整个内容就是一个类,包装名就是类名
对象:类的一个实例,就是一个抽象的具体化,得到个体
实例化 :从类产生出一个对象的过程
类是一个模板,对象是模板创造出来的一个具体的模型
抽象:跟实例化刚好相反,把相同的一些实体的共同的特点(属性和能力),总结出来,形成类的过程。
面向对象在系统的实现
类
语法:class 类名{ //类成员}
对象(实例化)
语法
$object = new 类名[()]
new是实例化,new 类名之后(实例化)得到一个对象,用一个变量来保存对象
对象查看
类里的一些内容:类成员
类成员:属性,方法,类常量
属性:放在类里的变量
方法:放在类的函数
类常量:放在类的常量
定义类属性:需要对属性使用访问修饰限定符
php5以前:使用关键字 var
php5以后:三个关键字:public, protected , private
public:公共的,不管是在类里面还是在类外面都能被访问到
protected:受保护的,继承的时候使用,如果没有继承,与private一样
private:私有的,只能在类的内部进行访问
带属性的类的对象
属性的访问:只能通过对象进行访问
语法:对象->属性名字
属性的操作:修改和查看
访问修饰限定符的作用
类内容只能有属性,方法和常量,不能有其他的
通过类中的方法来访问私有属性
类中的方法就是函数
语法:function 函数名(){ // 函数体;返回值}
方法访问属性:错误
方法访问属性
但是以上方式治标不治本,每个对象所属的变量名都不一样,所以这里都会只对一个对象进行所有操作。
有一种方式,能够实现每个对象去调用方法的时候,都代表该对象。
关键字:$this,代表当前对象(调用该方法的对象)
$this的使用
课堂作业
1.新建一个类Person
2.类有属性,公共的name,私有的salary
3.定义方法,设置和获取私有的salary
4.实例化对象,然后记性访问