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

相关文章

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

哈希表的封装和位图

文章目录 2 封装2.1 基础框架2.2 迭代器(1)2.3 迭代器(2) 3. 位图3.1 问题引入3.2 左移和右移?3.3 位图的实现3.4 位图的题目3.5 位图的应用 2 封装 2.1 基础框架 文章 有了前面map和set封装的经验,容易写出下面的代码 // UnorderedSet.h#pragma once#include "HashTable.h"

Java基础回顾系列-第二天-面向对象编程

面向对象编程 Java类核心开发结构面向对象封装继承多态 抽象类abstract接口interface抽象类与接口的区别深入分析类与对象内存分析 继承extends重写(Override)与重载(Overload)重写(Override)重载(Overload)重写与重载之间的区别总结 this关键字static关键字static变量static方法static代码块 代码块String类特

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out