Object对象
2016-03-24 19:38
260 查看
对象和类的关系就是,黄种人和人的,就是再划分出其中的一种
面向对象三大 特点
一、封装性
信息隐藏,只留一个方法与外部之间联系。
二、继承性
可以创建多个属性和方法,并可重写或添加。
三、多态性
在同一个类的不同对象,调用同一个方法可以获得不同的结果。
类就是指一类人、事、物。对象就是类里面具体都某个个体,所以称为实例化一个对象。属性就是这个对象所拥有的特性,方法就是该对象能够做的事。所以你的理解是正确的。
《《类是区分大小写
$this 是当前对象的引用地址。只能在内部使用
实例化就是类再重新生成一个变量
静态变量static,就是不实例化,通过::来访问其中的属性和方法
在php中,对于类来说,如果用->操作符来访问其中的成员属性和方法,则前面不应添加 $ ,因此例:$this->name
类常量属于类的,我们想访问就通过类的方式self关键字。self为当前的引用
构造函数是系统自动执行的,是创建时执行的
析构函数释放时执行的
php继承是单继承
extends 继承父类
::可以在没有声明任何实例的情况下访问类中的成员方法或成员变量,格式为
关键字::变量名/常量名/方法名
关键字分为以下三种
parent,可以调用父类中的成员变量,成员方法和常量
self:可以调用当前类中的静态成员和常量
类名:可以调用本类中的变量,常量和方法
public(公共成员)公开的,没有隐藏的数据信息。可以在任何位置(类内类外)被其他的类和对象调用。子类可以继承和使用父类中的所有公共成员。
private(私有成员)被private关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类外被访问。在子类中也不可以。
protected(保护成员)private关键字可以将数据完全隐藏起来,除了在本类外,其他地方都不可以调用,子类也不可以。但对于有些变量希望子类能够调用,但对另外的类来说,还要做到封装。这时,就可以使用protected关键字。
被protectedx修饰的类成员,可以在本类和子类中被调用,其他地方则不可以被调用。
final关键字
被final修饰过的类和方法就是“最终的版本”
final class name说明不可以在继承,也不可以有子类
final function name说明子类中不可以进行重写和覆盖
abstract关键字。抽象类是一种不能被实例化的类,只能作为其他类的父类来使用
抽象类,每个方法在子类中的实现都是不同的,在父类中无法规定。为了统一规范,不同子类的方法要有这些相同的方法名:
interface关键字。想要实现多个接口,必须用逗号隔开,且接口类中所有未实现的方法需要在子类中全部实现,否则php会出现错误
魔术方法
__construct()、__destruct()、
__clone方法 在克隆对象的过程中,调用__clone()方法,可以使克隆出来的对象保持自己的一些方法和属性
对象比较
==是比较两个对象的内容
===是比较对象的引用地址
instanceof可以检测当前对象是属于哪个类
__set和__get方法
1.当程序试图写入一个不存在或不可见的成员变量时,php就会执行__set()方法。包含两个参数,变量名和变量值。
2.当程序调用一个未定义或不可见的成员变量时,可以通过__get()方法来读取变量值。一个参数表示要调用的变量名
__call()方法当程序员调用不存在或不可见的成员方法时,php会先调用__call()方法来存储方法名及其参数。call有两个参数,方法名和数组参数。
__sleep()和__wakeup()
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。
PHP中的序列化和反序列化分别通过函数serialize()和unserialize()即可实现。serialize()的参数可以是resource类型外的所有变量类型,最常见的是用来序列化对象,unseialize()将serialize的返回结果作为参数,进行反序列化,得到原对象。
__tostring()方法 当使用echo或print输出对象时,将对象转化为字符串
类名命名以(命名空间.class.php)子类(命名空间.php)
面向对象三大 特点
一、封装性
信息隐藏,只留一个方法与外部之间联系。
二、继承性
可以创建多个属性和方法,并可重写或添加。
三、多态性
在同一个类的不同对象,调用同一个方法可以获得不同的结果。
类就是指一类人、事、物。对象就是类里面具体都某个个体,所以称为实例化一个对象。属性就是这个对象所拥有的特性,方法就是该对象能够做的事。所以你的理解是正确的。
《《类是区分大小写
$this 是当前对象的引用地址。只能在内部使用
实例化就是类再重新生成一个变量
静态变量static,就是不实例化,通过::来访问其中的属性和方法
在php中,对于类来说,如果用->操作符来访问其中的成员属性和方法,则前面不应添加 $ ,因此例:$this->name
类常量属于类的,我们想访问就通过类的方式self关键字。self为当前的引用
构造函数是系统自动执行的,是创建时执行的
析构函数释放时执行的
php继承是单继承
extends 继承父类
::可以在没有声明任何实例的情况下访问类中的成员方法或成员变量,格式为
关键字::变量名/常量名/方法名
关键字分为以下三种
parent,可以调用父类中的成员变量,成员方法和常量
self:可以调用当前类中的静态成员和常量
类名:可以调用本类中的变量,常量和方法
public(公共成员)公开的,没有隐藏的数据信息。可以在任何位置(类内类外)被其他的类和对象调用。子类可以继承和使用父类中的所有公共成员。
private(私有成员)被private关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类外被访问。在子类中也不可以。
protected(保护成员)private关键字可以将数据完全隐藏起来,除了在本类外,其他地方都不可以调用,子类也不可以。但对于有些变量希望子类能够调用,但对另外的类来说,还要做到封装。这时,就可以使用protected关键字。
被protectedx修饰的类成员,可以在本类和子类中被调用,其他地方则不可以被调用。
final关键字
被final修饰过的类和方法就是“最终的版本”
final class name说明不可以在继承,也不可以有子类
final function name说明子类中不可以进行重写和覆盖
abstract关键字。抽象类是一种不能被实例化的类,只能作为其他类的父类来使用
抽象类,每个方法在子类中的实现都是不同的,在父类中无法规定。为了统一规范,不同子类的方法要有这些相同的方法名:
interface关键字。想要实现多个接口,必须用逗号隔开,且接口类中所有未实现的方法需要在子类中全部实现,否则php会出现错误
魔术方法
__construct()、__destruct()、
__clone方法 在克隆对象的过程中,调用__clone()方法,可以使克隆出来的对象保持自己的一些方法和属性
对象比较
==是比较两个对象的内容
===是比较对象的引用地址
instanceof可以检测当前对象是属于哪个类
__set和__get方法
1.当程序试图写入一个不存在或不可见的成员变量时,php就会执行__set()方法。包含两个参数,变量名和变量值。
2.当程序调用一个未定义或不可见的成员变量时,可以通过__get()方法来读取变量值。一个参数表示要调用的变量名
__call()方法当程序员调用不存在或不可见的成员方法时,php会先调用__call()方法来存储方法名及其参数。call有两个参数,方法名和数组参数。
__sleep()和__wakeup()
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。
PHP中的序列化和反序列化分别通过函数serialize()和unserialize()即可实现。serialize()的参数可以是resource类型外的所有变量类型,最常见的是用来序列化对象,unseialize()将serialize的返回结果作为参数,进行反序列化,得到原对象。
__tostring()方法 当使用echo或print输出对象时,将对象转化为字符串
类名命名以(命名空间.class.php)子类(命名空间.php)
相关文章推荐
- native c回调 java 中 自带参数 jclass和jobject的区别
- objective-C学习笔记(六)继承与多态
- iOS的Objective-C的工厂设计模式详解
- org.json.JSONException: Unterminated object at character 97 of
- 深入理解Objective-C的Runtime机制
- IOS 封装上线 All object files and libraries for bitcode must be generated from.
- object-c 结构体
- java类object
- Java中Class类与Object类之间有什么关系?
- Runtime运行时
- 1.6 Object model
- JavaScript 笔记 - Object 类型
- 设计模式之Value Object模式
- Object新方法总结
- OC中initialize方法和init方法的区别
- Objective-C Method Swizzling 的最佳实践
- RAC object remastering ( Dynamic remastering )
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String
- effective objective c 2.0
- Objective-C编码规范