面对对象(零碎知识点)

程序设计思想的发展史

机器语言:简单的二进制码来代替某些指令的操作;
汇编语言:简单的符号/特定的符号/特殊的符号;
面向过程:解决问题的步骤; 低级语言——>高级语言
面向对象:万物皆对象;看的见看不见的都为对象;
组成部分:元素和行为;
对象的元素:是对象的数据模型,用于描述对象的数据信息,又被称为对象的属性或者对象的成员变量;
对象的行为:是对象的行为模型,用于描述对象的行为模型,又被称为对象的方法;
面向对象的特点:
1:每个对象都是独一无二的
2:对象是一个特定的事物,职能是完成特定的功能;
3:对象是可以重复使用的;
面向对象的含义:就是在编程的时候始终把对象放在心上;
对象的编程:就在编程的时候,数据结构都通过对象的形式存储,数据结构都是以属性和方法的形式存储的;
为什么要学习面向对象:
1:对象的描述方式更加贴合真实世界,有利于大型业务的的理解;
2:在程序设计的过程中用对象的视角分析世界的时候,能够拉近程序设计和真实世界的距离;
面向对象的实质:就是把生活中要解决的问题都以对象的形式进行存储;
面向对象的基本思路:1:识别对象;2:识别对象属性;3:识别对象的方法;
面向对象的基本原则:高内聚,低耦合;
高内聚:对象只负责一项特定的职能,可大可小;
低耦合:1:外部世界只可以看到对象的一些属性并非全部;
2:外部世界只可以看到对象做某些事情,并非全部;
对象的适用范围:适用于事物多,业务逻辑复杂,数据量大的应用系统和网站;
面向对象的优点:1:易维护;2:质量高;3:易扩展;
缺点:不利于大系统的开发;
面向对象过程区别:面向过程是根据步骤来划分的;
面向对象是根据功能来划分的;
对象是实力化的结果;实例化关键字new+类名()
物以类聚,把具有相似特性归结到一个类中;
类定义了这些相似对象,拥有的相同的属性和方法;
类是相似对象的描述,类的对象称为类的一个实例;
类的属性和方法统称为类的成员;
类的定义里面属性值都是空的,而对象的属性都有具体的值;
三大特性:封装  继承  多态:对于同一种行为,有不同的表现状态
__construct构造函数:执行在每一个方法之前,第一个调用
__destruct最后执行;
在类外调用属性时候:对象名指向属性名
在类外调用方法时候:对象名指向方法名()
在类内调用属性时候:$this->属性名
在类外调用方法时候:$this->方法名()
封装的概念:封装也就是把客观的事物封装成抽象的类,并且类可以把自己的数据和方法只让可信任的类或者对象
操作;对于不可信任的进行信息隐藏;
封装的优点:
1:易排错,开发工程量减小;
2:良好的封装可以减少耦合
3:类内部的结构可以自由修改;
4:可以对类成员更精确的控制;
访问修饰符:
public公共的针对的是所有的
private私有的针对的是自身
protected受保护的针对的是自身和信任的子类或者类成员
调用普通方法必须先实例化;
调用静态方法不需要实例化;
在类内调用普通属性用$this,在类内调用静态属性和方法用self::;
::作用避免了实例化;
self::的格式可以调用普通属性和方法,而$this->的格式不能调用静态属性和方法;
在静态方法中只能用self::的格式去调用;
类内:(普通)$this->属性名 $this->方法名()
类外:(普通)对象名—>属性名 对象名->方法名()
类内:self::$属性名 self::方法名()
类外:类名::$属性名 类名::方法名()
继承:子承父类,一旦发现了继承,子类可以任意调用父类中的方法;
include和require都是包含,引入文件的意思
__call 重载 调用一个不存在的普通方法;
__callstatic 静态重载,针对静态方法时会被自动调用
interface 接口 定义于多个类,使用的公共的方法,但是接口里面没有具体的实现方式;
一旦某个类继承了某个接口之后,接口中定义的方法在类中必须都要有具体的实现;
不能对接口进行实例化操作,从上到下,从左到右依次执行;
类-extends-类;
类-implements-接口
接口-extends-接口
1.某个类实现了某个接口,和继承了某个类的区别;
2.实现接口和继承类很相似,但是接口不能直接创建自己的对象;
3.继承的父类必须有该方法的实现,子类可以重写父类的方法,也可以不重写;
4.接口里面的方法是不需要有具体的实现方式,只要定义了方法的名称和参数就可以了;
具体的实现必须在实现类中定义;
区别:类的方法必须有实现,接口的方法必须为空;
抽象类:abstract class 类名{}
抽象类是介于接口和类之间的,一部分有实现,另外一部分没有;
抽象类和接口一样不能被直接实例化;
如果非要调用抽象类中的普通方法,可以尝试用双冒号的形式来调用;但是会有报错,需要屏蔽一下;
抽象类中的抽象方法必须为空;抽象类中的普通方法,可以有具体的实现方式;
__toString:当对象被当做字符串使用时,这个方法会被自动调用
__invoke:被当做方法使用;
__set:给一个不存在的或者不可访问的属性赋值的时候自动调用
 __get:获取一个不存在的或者不可访问的属性的值的时候,自动调用
__isset:对不可访问的属性使用isset或empty时会被自动调用
__unset:对不可访问的属性使用unset时会被自动调用
__clone克隆的时候会被自动调用
__sleep:序列化 化成一条字符串;
__wakeup:反序列化 两个不能共存
php设计模式
工厂模式:房东—中介—租户;
单例模式:自己实例化自己,并且只实例化一次
1:将构造模式声明成private形式;
2:声明一个静态方法来实例化自己
3:声明一个私有的或者受保护的静态属性
在上述第二步中进行判断,最后返回结果;
注册树模式:
适配器模式:
策略模式:将一组特定的行为和算法,封装成类,以适应某些特定的上下文环境;
原型模式:
数据对象映射模式
观察者模式:当一个对象的状态发生改变时,依赖于他的对象都会接到通知,并且自动更新;
应用场景,一个事件发生后要执行一连串的更新操作;传统的编程方式就是在事件的代码之后直接加入处理逻辑;当更新的逻辑增多之后,代码会变得难以维护;观察者模式实现了低耦合,非侵入式的通知与更新记录;
装饰模式:
迭代器模式:
代理模式:
smarty 比较好的视图引擎
1:基于该引擎开发出模板,更贴近标准的HTML
2:在语法方面,简单易懂;
3:良好的缓存机制;
4:扩展性良好;
5:网络资源多;常见的:smarty,phplib;
smarty 是一个模板引擎,www.smarty.net
是目前世界上PHP模板引擎著名之一,它分离了逻辑代码,和外在的内容,提供了一种易于管理和使用的方法
用来将原本于HTML代码混杂在一起的PHP代码逻辑分离;
smarty 特点:速度快,相对于其他的模板引擎
编译型(采用smarty编写的程序,在运行时会编译成一个非模板技术的PHP文件);
缓存技术:(他可以将用户最终看到的HTML文件缓存成一个静态的HTML页面)实时性更新;
插件技术:(smarty可以自定义插件)
plugins插件目录
sysplugins系统插件目录
Autoloder自动加载文件
bookstrap样式文件,
debug调试模板(带tpl都是模板),
Smarty.class.php主文件,
SmartyBC.class.php兼容性文件
Linux严格区分大小写,在引入smarty主文件的时候要严格区分大小写;
left_delimiter 左定界符
ight_delimiter 右定界符
template_dir存放模板目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值