python基础知识学习第八天

白昼怎懂夜的黑 提交于 2019-12-26 04:19:51

面向对象编程OOP


面向对象


对象的概念是面向对象技术的核心。在现实世界里,我们面对的所有事物都是对象,如计算机、电视机、自行车等。在面向对象的程序设计中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
面向对象的三个主要特性:
对象的行为:可以对对象施加哪些操作;如电视机的开、关、转换频道等。
对象的状态:当施加那些方法时,对象如何响应;如电视机的外形、尺寸、颜色等;
对象的标识:如何区分具有相同行为与状态的不同对象。
基本概念:
对象,所谓数据封装就是将一组数据与这组数据有关操作组装在一起,形成一个实体,这个实体就是对象。 
类(Class)具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。
成员:对象的状态和行为。
属性:对象的状态,一个对象用数据值来描述它的状态。
方法:对象的行为,用于改变对象的状态,对象及其操作就是对象的行为

成员
属性
方法
常量

魔术方法
构造
析构
__clone
__toString
__call

 

继承:
一个对象拥有或者使用另一个对象的成员信息,称之为这个对象继承自另一个对象。

Php中,通过在类上,使用特殊的操作达到目的。

通过在定义类时,利用 extends 来指明当前类对象继承那个类的对象!

重写override
集成时,如果发生成员冲突,php的处理方式,为重写。就是子类同名成员会覆盖父类同名成员。不能看到父类的同名成员:

 

final
final类,
只能被实例化对象不能用于被继承!
final方法
final关键字的另一个用法,用于限制方法!限制该方法,在所属类,被继承时,该方法不能被重写!

Public:
公共的。成员在类内,继承链上类内,和类外都可以访问到(任何地方)
Protected,保护的。类内和继承链上是类内都可以访问。
Private,私有的。类内。
抽象类 abstract
 1) 概念:包含至少一个抽象方法的类,使用关键字abstract
 2)特点: 不能实例化  , 做为父类,子类继承父类,重写抽象方法

接口 interface
1. 概念: 接口是软件工程中的一种技术,提供了其它类所遵循的统一的规范和标准(抽象方法)
2. 接口包含的内容:抽象方法、常量,不能包含属性和非抽象方法
3. 特点: 1)不能实例化  2)接口可以继承接口  3)类可以实现多个接口,弥补php中类单继承的弱点

魔术方法
1)定义魔术方法__get($property)
 参数:$property,接收对象的私有属性名称
 返回值:返回属性值
 调用:当获得对象的私有属性值或不存在的属性时,自动调用
2)定义魔术方法__set($property,$v)
调用:当给对象的私有属性赋值时,自动调用
__isset()
3)定义析构方法__destruct()
 参数:无参
4)定义魔术方法__isset()
 参数:无参
 返回值:字符串
 调用:当判断1个对象是否存到某个属性时调用
6 、__autoload 自动加载
7、定义clone魔术方法
 参数:无参
 功能:如果private 该方法,该类的对象不能被克隆
8)定义魔术方法__call()
 参数:$method_name  方法名称  $val:实参数组
 调用:当调用私有或不存在的方法时,自动调用


经典的:
几乎所有的属性和大部分的方法都是私有(如果有继承的话,会有受保护)的,只有一些供给外部调用者使用方法,是公共的!

自动加载
__autoload


三大特性
封装,封装,在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 
继承,是指一个对象直接使用另一对象的属性和方法。
类似于:按照法律或遵照遗嘱接受死者的财产、职务、头衔、地位等。 
多态,接口的多种不同的实现方式即为多态

设计模式

单例

反射API
  用户获取类的结构信息

 

异常的抛出与捕获
抛出:throw 异常对象
监视和捕获:
Try {
//可能出现异常的代码
} catch(捕获的异常对象) {
处理改异常的代码
}

异常的使用规则:
需要进行异常处理的代码应该放入 try 代码块内,以便捕获潜在的异常。 
每个 try 或 throw 代码块必须至少拥有一个对应的 catch 代码块。 
使用多个 catch 代码块可以捕获不同种类的异常。 
可以在 try 代码块内的 catch 代码块中再次抛出(re-thrown)异常。
Serialize 序列化
Unserialize 反序列化

序列化作用是:保证数据类型不会发生改变
对象在被序列化时,是对象所拥有的属性会被序列化!

存在2个特殊的问题:
反序列化时,需要找到所属类
在对像被反序列化时,需要找到当前对象所属的类才可以被完美的反序列化,否则如果不能找到所属的类,那么会变成php内置类:__PHP_Incomplete_Class(不完整类)的一个对象。
————————————————
版权声明:本文为CSDN博主「__爱丽丝」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/php_1314/article/details/46519791

OOP 面向对象编程
原创__爱丽丝 发布于2015-06-16 16:20:00 阅读数 1390  收藏
展开
 
面向对象
对象的概念是面向对象技术的核心。在现实世界里,我们面对的所有事物都是对象,如计算机、电视机、自行车等。在面向对象的程序设计中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
面向对象的三个主要特性:
对象的行为:可以对对象施加哪些操作;如电视机的开、关、转换频道等。
对象的状态:当施加那些方法时,对象如何响应;如电视机的外形、尺寸、颜色等;
对象的标识:如何区分具有相同行为与状态的不同对象。
基本概念:
对象,所谓数据封装就是将一组数据与这组数据有关操作组装在一起,形成一个实体,这个实体就是对象。 
类(Class)具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。
成员:对象的状态和行为。
属性:对象的状态,一个对象用数据值来描述它的状态。
方法:对象的行为,用于改变对象的状态,对象及其操作就是对象的行为

成员
属性
方法
常量

魔术方法
构造
析构
__clone
__toString
__call

 

继承:
一个对象拥有或者使用另一个对象的成员信息,称之为这个对象继承自另一个对象。

Php中,通过在类上,使用特殊的操作达到目的。

通过在定义类时,利用 extends 来指明当前类对象继承那个类的对象!

重写override
集成时,如果发生成员冲突,php的处理方式,为重写。就是子类同名成员会覆盖父类同名成员。不能看到父类的同名成员:

 

final
final类,
只能被实例化对象不能用于被继承!
final方法
final关键字的另一个用法,用于限制方法!限制该方法,在所属类,被继承时,该方法不能被重写!

Public:
公共的。成员在类内,继承链上类内,和类外都可以访问到(任何地方)
Protected,保护的。类内和继承链上是类内都可以访问。
Private,私有的。类内。
抽象类 abstract
 1) 概念:包含至少一个抽象方法的类,使用关键字abstract
 2)特点: 不能实例化  , 做为父类,子类继承父类,重写抽象方法

接口 interface
1. 概念: 接口是软件工程中的一种技术,提供了其它类所遵循的统一的规范和标准(抽象方法)
2. 接口包含的内容:抽象方法、常量,不能包含属性和非抽象方法
3. 特点: 1)不能实例化  2)接口可以继承接口  3)类可以实现多个接口,弥补php中类单继承的弱点

魔术方法
1)定义魔术方法__get($property)
 参数:$property,接收对象的私有属性名称
 返回值:返回属性值
 调用:当获得对象的私有属性值或不存在的属性时,自动调用
2)定义魔术方法__set($property,$v)
调用:当给对象的私有属性赋值时,自动调用
__isset()
3)定义析构方法__destruct()
 参数:无参
4)定义魔术方法__isset()
 参数:无参
 返回值:字符串
 调用:当判断1个对象是否存到某个属性时调用
6 、__autoload 自动加载
7、定义clone魔术方法
 参数:无参
 功能:如果private 该方法,该类的对象不能被克隆
8)定义魔术方法__call()
 参数:$method_name  方法名称  $val:实参数组
 调用:当调用私有或不存在的方法时,自动调用


经典的:
几乎所有的属性和大部分的方法都是私有(如果有继承的话,会有受保护)的,只有一些供给外部调用者使用方法,是公共的!

自动加载
__autoload


三大特性
封装,封装,在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 
继承,是指一个对象直接使用另一对象的属性和方法。
类似于:按照法律或遵照遗嘱接受死者的财产、职务、头衔、地位等。 
多态,接口的多种不同的实现方式即为多态

设计模式

单例

反射API
  用户获取类的结构信息

 

异常的抛出与捕获
抛出:throw 异常对象
监视和捕获:
Try {
//可能出现异常的代码
} catch(捕获的异常对象) {
处理改异常的代码
}

异常的使用规则:
需要进行异常处理的代码应该放入 try 代码块内,以便捕获潜在的异常。 
每个 try 或 throw 代码块必须至少拥有一个对应的 catch 代码块。 
使用多个 catch 代码块可以捕获不同种类的异常。 
可以在 try 代码块内的 catch 代码块中再次抛出(re-thrown)异常。
Serialize 序列化
Unserialize 反序列化

序列化作用是:保证数据类型不会发生改变
对象在被序列化时,是对象所拥有的属性会被序列化!

存在2个特殊的问题:
反序列化时,需要找到所属类
在对像被反序列化时,需要找到当前对象所属的类才可以被完美的反序列化,否则如果不能找到所属的类,那么会变成php内置类:__PHP_Incomplete_Class(不完整类)的一个对象。
————————

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!