1、面向过程编程方法,是将程序看成一个个步骤;而面向对象编程(OOP)方法是将程序看成一个个具有不同功能的部件在协同工作,类就是描述这些部件的数据结构和行为方式,而对象就是这些具体的部件。
2、对象的定义:一个对象有自己的状态,行为和唯一的标识;所有相同类型的对象所具有的结构和行为在它们共同的类中定义
3、对象的状态: 包括这个对象已有的属性 (小明的身高,体重,性别等)
4、行为:是指一个对象如何影响外界及被外界影响,表现为对象自身状态的改变和信息的传递 ( 小明,他可以唱歌给大家听,这是他的行为,他会学习新知识,等)
5、标识:是指一个对象所具有的区别于其他对象的属性(不是变量名,而是内存地址)
6、一个类就是一群对象所共有的结构和行为。而一个对象对外部公开的属性和方法被称为对外部的接口
7、属性和方法: 包括实例属性和静态属性, 也即实例方法和静态方法 ,
实例属性是用变量来表示的,
实例方法描述这个实例有哪些行为,方法可分为外部可访问和外部不可访问,其中外部不可访问的方法,用来描述类中的各个成员互相协作的内部逻辑,而外部可访问的方法是这个对象可以对外部提供的服务
8、静态属性:存储所有对象共同的状态(属性),和任何的实例(对象)没有关联。每个对象的实例属性可以各不相同,但所有同类对象的静态属性值是要同的,改变一个类的静成属性,将会影响到该类的所有实例,静态属性是属于类的,每个实例中都有可能改变静态变量的值,
9、静态方法:也是独立于所有实例的。静态方法仅和每个类绑定,不和类的任何具体实例(对象)绑定,静态属性和静态方法都应该通过类访问
10、类的实例化 $对象名=new 类名[()]; 这里要把后面的类名看成是构造函数,而不应该把它理解为类名
11、构造函数(用于构造对象的函数):对象的创建和删除是所有OOP语言关注的重要课程,创建对象时,会自动调用构造函数(方法),我们在使用一个对象前,往往需要初始化这个新生的对象状态,构造方法的作用就是在实例(对象)新生时,自动给它设置一些状态(属性)
12、$this 关键字,持有对当前对象(实例)的引用 ,注意 $this关键字,只限于实例属性和实例方法,静态属性和静态方法只应该用 类名::属生|方法 的形式调用
,在类中也可以使用 self::$静态变量 的形式调用静态变量
13、封装 :又叫隐藏实现,就是将具体实现的细节隐藏起来,只将必要的功能接口对外开放,用户只知道这些代码单元可以提供哪些服务,但这知道这些代码单元中具体的逻辑如何
14、private\protected\public这个关键字,仅与封装有关,和继承没有半点关系,用private限定的成员,依然会被继承,这些关键字只是限定了某些状态(属性)或者行为(方法)是否可以被外部访问到。
15、静态属性的访问: 类名::$属性名 注意 有 “$"
16、静态方法的访问: 类名::方法名()
17、常量:
定义方式: const 大写名称=值;
访问方式: 类名::常量名 没有 $
常量和静态属性很象,也是属于类的,不属于某个实例
18、抽象类
主要用来限定子类的规范或者说是格式,抽象类至少会包含一个抽象方法,即没有方法体的方法,子类中必须完全现实所有的抽象方法才能实例化,子类中抽象方法的封装访问限定词不能比父类限定更严格
转载于:https://blog.51cto.com/hwp2011/707639