关于面向对象的一些基础认知和理解

面向对象的解释在网上一大堆,但每个人在不同的阶段都对它有不同的理解。在这里我记录一下我目前对它的一些理解。唉~之前写的几百字说不见就不见了,让我又得从新写,真是让人烦恼。

面向对象在目前的我看来,就是一种代码实现的设计方式。它们够让人更加形象和直观的去理解或者实现代码。在我刚开始学习的时候,或者说大多数人都是。在开始写代码的时候,都是按部就班的跟着已经完成的代码一步一步的敲。命名空间,定义类,具体实现方法,实例化,调用。一套组合王八拳打下来,该实现的都实现了。对于其中的为什么,我们完全不在意,满脑子只是这样做的话我想要的功能就能实现了吧。毕竟,这大概就是写代码的乐趣吧。哈哈哈哈哈哈~看着自己想要做的东西一步一步的完成,谁还有心思去思考那些旁支末节呢。如面向对象的三个特点:封装,继承和多态。在哪里体现出来和我又有什么关系。

关于封装,这是在我把一个功能所需要的方法,都放在一个类里面实现的时候才蓦然回首般的发觉。哦~原来这就是封装。把要准备的东西都准备好,在其他地方使用到的时候只管调用,不用去理会它具体是怎么实现的。像平时用到的短信、邮件和支付的接口,都是经过这样的封装在进行调用的。

还有继承,我是在使用框架的时候开始了解的。像控制器和模型,在基类里面封装好一些子类都会用到的方法,子类通过 extends 继承父类。然后我也渐渐了解 privateprotectedpublic 这三个词的用法。这三个次可以说是类里面关于方法调用的权限的关键词了,确定了方法在哪里可以调用,在哪里又无法被调用。对于程序的安全性来说,这是一个很大的帮助。还有比较重要的一点就是,一些关键字的使用。如 thisselfstaticparentfianl 等。最后,还有魔术变量和魔术方法。这些都是我们在面向对象编程时,非常重要的助手。如果合理的使用他们,在编写代码时,你会有飞一般的感觉。

多态的话,我目前的理解感觉还不是很深。因为我还从来没有写过一些相关的接口。以前在看一些源代码的时候,往父类查找实现方法时,我们会发现一些已经被声明但却没有具体实现的方法。这就涉及到了多态这个概念。一般这些类在定义时,都是通过 abstractinterface 关键字进行定义,分别是抽象类和接口。他们都需要在子类中进行实现,抽象类通过 extends 关键字继承,只能单继承不能多继承,一般用来定义这个类是什么,它包含了属性,抽象方法和非抽象方法;而接口的子类则是通过 implements 进行继承,接口可以实现多继承,一般是用来定义这个类能做什么,一般认为它只有抽象方法,常量极少用到。

最后,在 PHP 中还有一个提高代码复用的 Traits。它需要通过 Traits 关键字进行定义,通过 use 关键字使用,不能被实例化。我是在学习 EasySwoole 框架的时候才知道这个宝藏的,里面目前发现用的最多的就是拿来实现单例模式了。

好了,就先这么多吧,不要怪这篇博客太短小,主要是现在能力和理解确实稍有不足,以后有机会在补充。如果大家有不同的见解或着补充可以在下面评论哈~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值