php面向对象编程之--封装

2024-09-05 19:32

本文主要是介绍php面向对象编程之--封装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

php面向对象编程的三大特征

①、封装
②、继承
③、多态

抽象:我们在前面研究类时,实际上是把一类事物的共有的属性和行为提取出来,形成一个物理模型。这种研究问题的方法称为抽象。

封装:
 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

上面的操作是靠以下访问控制符号来实现,规定了自身权限,使有的人能访问,有的人不能访问

例程:

<span style="font-size:18px;"><?php
class Person{public   $name;private  $age;private  $salary;function  __construct($name,$age,$salary){$this->name=$name;$this->age=$age;$this->salary=$salary;}
}
$a1=new Person("小明",32,5000);
//正确显示,全局属性访问没有限制
echo "<br>".$a1->name."<br>";
//报错,私有属性不能在类外访问
//echo "<br>".$a1->age."<br>"; 
//报错,私有属性不能在类外访问
//echo "<br>".$a1->salary."<br>";
?></span>

php提供了三种访问控制符号来控制方法和属性(变量)的访问权限.

1. public  表示全局,可以在本类,类外部,子类 中使用
2. protected 表示受到保护, 可以在本类, 子类中使用,不能在类外使用n
3. private 表示私有, 只能在本类中使用,不能在类外使用,即在其他地方new了本类,也不能调用该方法


这三个控制修饰符号可以对 属性 和 方法进行修饰
1.  如果一个方法没有访问修饰符,则默认是public

2.  属性  必须指定访问修饰符,若没有访问修饰符,会报错。

3. 私有方法前面最好加下划线,如:private function _save(){}


//方法之间可以互相调用. 但是需要使用 $this引用 
function test11()
{
$this->test12();
}
protected function test12()
{
echo "test12 hello";
}

举例说明:

<?php
class Person1{public $name;protected  $age;private  $salary;function __construct($name,$age,$salary){$this->name=$name;$this->age=$age;$this->salary=$salary;}//成员方法public function showInfo(){//这里说明在本类中可以使用 public protected 和private 修饰的变量.echo $this->name."||".$this->age."||".$this->salary;}function test(){//调用showInfo()方法,利用this引用$this->showInfo();}
}
//创建一个人
$p1=new Person1("孙悟空",30,1000);
$p1->test();
?>

若想在类外去访问protected 变量或者 private 变量, 通常的做法是在类中创建 public 方法去访问 这些变量. 形式是
public function setXxx($val){
}
public function getXxx(){
}
public function showInfo(){
}


举例说明:

<?php
class Person2{public $name;protected  $age;private  $salary;function __construct($name,$age,$salary){$this->name=$name;$this->age=$age;$this->salary=$salary;}//成员方法public function showInfo(){//这里说明在本类中可以使用 public protected 和private 修饰的变量.echo "<br>".$this->name."||".$this->age."||".$this->salary;}
}
//创建一个人
$p1=new Person2("猪八戒",20,5000);
//访问其详细信息,由于属性age和salary分别为保护和私有变量,若在类外直接访问
//其属性会报错,但在类中创建一个公共属性的函数,通过函数即可访问这些变量。
$p1->showInfo();		
?>


这篇关于php面向对象编程之--封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139863

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操