您的位置:首页 > 移动开发 > Objective-C

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: