首页 > 编程语言 >【web 开发】PHP中的类和对象的理解

【web 开发】PHP中的类和对象的理解

时间:2023-05-26 19:05:52浏览次数:44  
标签:web PHP 对象 子类 理解 模具 父类 就是 属性

前言

面向对象编程的主要优势就是把编程的重心从处理过程转移到了对现实世界实体的表达。这十分符合人们的思维方式和逻辑类(classes)和对象(objects)并不难理解。试想一下,在日常生活中,自然人对事物的认识,一般是由看到的、感受到的实体(比如日常生活中的衣食住行)归纳出来的,或者抽象出它们的类。比如,当看到楼下停的汽车中都是Polo的时候,人们自然会想到,这些都是“两厢车”,“两厢车”就是抽象出的类。这就是人们认识世界的过程。然而程序员需要在计算机的世界中再造一个虚拟的“真实世界”。那么,在这里程序员就要像“造物主”一样思考,相当于站在上帝的角度。就是要先定义“类”,再由“类”产生一个个“实体”,也就是一个个“对象”。

比如:在过年的时候,有的地方要制作“点心”或者糕点,点心一般会有鱼、兔、狗等生动的形状。而这些不同的形状是由不同的“模具”做出来的。那么,在这里鱼、兔、狗的一个个不同的点心就是实体,最先刻好的“模具”就是类。要明白,这个“模具”指的是被刻好的“形状”,而不是制作“模具”的材料。如果你能像造物主一样用意念制作出一个个点心,那么,你的意念的“形状”就是“模具”。也就是我们常说的类是对象的模板。

什么是OOP

OOP是Object-Oriented Programming(面向对象编程)的缩写。对象(object)在OOP中是由属性和操作组成的。属性(attributes)就是对象的特性或与对象关联的变量。操作(operation)就是对象中的方法(method)或函数(function)。

由于OOP中最为重要的特性之一就是可封装性,因此对对象内部数据的访问只能通过对象的“操作”来完成,这也被称为对象的“接口”(interfaces)。因为类是对象的模板,所以类描述了对象的属性和方法。

另外,面向对象编程具有三大特点。

封装性

封装性:将类的使用和实现分开管理,只保留类的接口,这样开发人员就不用知道类的实现过程,只需要知道如何使用类即可,从而大大地提高了开发的效率。

继承性

继承性:“继承”是面向对象软件技术中的一个概念。如果一个类A继承自另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,还可以为子类追加新的属性和方法。继承可以实现代码的可重用性,简化对象和类的创建过程。另外,PHP支持单继承,也就是一个子类只能有一个父类。

多态性

多态性:多态是面向对象程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现。同一操作作用于不同的类的实例将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果。

标签:web,PHP,对象,子类,理解,模具,父类,就是,属性
From: https://blog.51cto.com/micai01/6358280

相关文章

  • webpack报错处理:The extension in the request is mandatory for it to be fully spe
    完整的报错提示如下:BREAKINGCHANGE:Therequest'./module2'failedtoresolveonlybecauseitwasresolvedasfullyspecified(probablybecausetheoriginisstrictEcmaScriptModule,e.g.amodulewithjavascriptmimetype,a'*.mjs'file,or......
  • webpack4
    webpack4webpack是一种前端资源构建工具,一个静态模块打包器(modulebundler)。在webpack看来,前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)。使用初始化package.jsonnpminit下......
  • 深入理解 apply()方法
      apply(thisArg)apply(thisArg,argsArray)thisArg在 func 函数运行时使用的 this 值。请注意,this 可能不是该方法看到的实际值:如果这个函数处于非严格模式下,则指定为 null 或 undefined 时会自动替换为指向全局对象,原始值会被包装。argsArray 可选一个数组或......
  • ADManager Plus:微软的全面活动目录管理解决方案
    摘要:ADManagerPlus是微软推出的一款全面活动目录(ActiveDirectory)管理解决方案。它提供了一系列强大的功能,帮助组织简化和自动化活动目录管理,提高安全性和效率。本文将介绍ADManagerPlus的特点、优势以及在企业中的应用价值。微软的ADManagerPlus是一款功能强大的全面活动目录管......
  • 宿主机套用 docker 容器中安装 PHP 的开发环境
    docker可以把运行环境整体打包,但是在开发时,IDE往往还要指定宿主机上的PHP可执行文件,这样,安装php扩展时,要装两遍,比较麻烦.如果在宿主机上运行容器中的命令?可以借助dockerexec-it<container_name><command><args>命令,写个名为php的shell脚本,里面写入这行代......
  • PHP Amqp 封装类
    1<?php23/**4*使用示例5#定义名称6define('ExchangeName','exchange_name_15');7define('QueueName','queue_name_15');8define('RoutingKey','routing_key_15');91......
  • PHP 反射机制打印对象
    1<?php2/**34echoObj::new('Redis');5echoObj::new('Redis')->method('set')?->isPublic();67*/89classObjextendsReflectionClass10{11publicstaticfunctionstd(?array$attrs=null)1......
  • Graphpad Prism9.5.1 科学绘图软件 下载安装教程(含Win/Mac)
    软件下载AutodeskFlame2024formac软件介绍AutodeskFlame破解版由是Autodesk公司(译作欧特克)开发的一款高端电影剪辑和特效制作系统。Flame是用于高速合成、高级图形和客户驱动的交互设计的终极视觉特效制作系统。AutodeskFlame提供出色的性能和荣获奥斯卡奖的工具。从......
  • WebGL几种常用服务图层的制作流程
    当前,越来越多的用户开始使用三维GIS平台SuperMapiClent3DforWebGL,对于新用户来说最常见的两个问题就是:1.为什么打开场景看不到数据?2.为何范例能实现的效果,我的数据就不行了?而造成这两个问题绝大多数的原因是数据处理不当,本文将讲解制作WebGL常用服务图层的流程及注意事项。 ......
  • php语言开发宝塔部署thinkphp考试平台管理系统
    技术架构PHP7.2+Thinkphp6+React+UmiJs+nginx+mysql5.7cnetos7以上+宝塔面板搭建教程1.下载源码,宝塔添加一个站点,PHP版本选择7.2。2.压缩codes后台代码目录,上传后台代码到宝塔的网站根目录当中解压缩,关闭防跨站,运行目录指向public,伪静态选择thinkphp,设置为:locat......