PHP方法的作用域
PHP支持6种方法作用域:public、private、protected、abstract、final和static,本文只讨论前5种作用域。
public:公共作用域。(就像空气和阳光,天下公用)
公共作用域的权限最为开放,类的内部外部都能访问,类的父类和子类也都能访问,类的对象也能访问,没什么特殊的权限限制,可以自由的在任何地方使用。
private:私有作用域。(就像皇帝的妃子,只供皇帝【类】自己享用,连皇帝的兄弟【类的实例对象】和儿子孙子【子类】都不能用)
私有作用域声明的方法只能在类内部使用,不能有实例化的对象调用,也不能由类的子类使用。它适合用来声明类内部的一些“辅助方法”,这些“辅助方法”主要用来执行一些“战术”方面的逻辑(与主要逻辑关系不直接的细枝末节的逻辑),为“战略”逻辑(主要逻辑)提供支撑。
protected:保护作用域。(就像皇帝的皇位,只能皇帝自己和自己的儿子孙子用,不能给皇帝的父亲【父类,已经做过皇帝了,不需要皇位了】和兄弟【类的实例对象】用,外人更是想都不要想)
保护作用域声明的方法只能在该类及其子类中使用(不能在父类中使用,不能在类外部使用,不能由实例化对象调用),这些方法可以用来帮助类或子类完成内部计算。
abstract:抽象作用域。(相当于“先皇遗旨”,先皇只负责指定和安排事情,但继位的皇帝负责执行和实现。先皇指定的这些事情肯定是有前提条件的,继位的皇帝可以按情况和需要来选择执行【实现】或不执行)
抽象作用域比较特殊,只在父类中声明,但在子类中实现。只有声明为abstract的类可以声明抽象方法。如果想定义一个应用编程接口(API),可以使用抽象方法声明。
final:不可更改作用域。(相当于皇帝的“圣旨”,皇帝的儿子和下属不可更改,也不可模仿皇帝发布同样的“圣旨”。)
final声明的方法将阻止子类中覆盖这个方法。
PHP方法的作用域的更多相关文章
- 《Visual C# 从入门到精通》第二章方法和作用域——读书笔记
第2章 方法和作用域 2.1创建方法 方法是一个基本的,强大的编程机制.可视为函数或者子程序相似的东西. 方法名是个有意义的标识符. 方法主体包含方法被调用时实际执行的语句. 声明一个方法的实例如下: ...
- Java 在方法和作用域内的内部类
通常,如果所读写 的代码包含了内部类,那么它们都是"平凡的"内部类,简单并且容易理解,然而,内部类的语法覆盖了大量其它的更加难以理解的计数,例如可以在一个方法里或者在任意的作用域里 ...
- [学习笔记]js动画实现方法,作用域,闭包
一,js动画基本都是依靠setInterval和setTimeout来实现 1,setInterval是间隔执行,过一段时间执行一次代码 setInterval(function(){},500);即 ...
- synchronized的使用方法和作用域
文章地址:https://mp.weixin.qq.com/s?__biz=MzI4NTEzMjc5Mw==&mid=2650554746&idx=1&sn=8e45e741c ...
- AngularJS 第三天----作用域
作用域的概念及其功能 AngularJS使用作用域的概念来充当数据模型的作用,在视图和控制器之间起着桥梁的作用.由于双向绑定的数据特性,视图的修改会更新 $scope,同样对 $scope的修改也会重 ...
- 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
0x00 前言 通过上一篇博客<匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的>的内容,我们实现了使用委托来构建我们自己的消息系统的过程.但是在日常的开发中,仍然有很多开发者因为 ...
- luogg_java学习_05_面向对象(方法和类)
这篇总结断断续续写了2天,内容来自Oracle java8编程入门官方教程和课外搜索总结,希望自己以后返回来看的时候都懂,也希望可以起到帮助初学者的作用. 转载请注明 出自 luogg的博客园 , 因 ...
- Angular作用域的层级概念(scope)
首先引入 angular 的根作用域:$rootScope ng-app:定义了angualr的作用域 ng-controller:定义了控制器 $scope定义了视图与控制器之间的纽带,而scope ...
- js闭包的作用域以及闭包案列的介绍:
转载▼ 标签: it js闭包的作用域以及闭包案列的介绍: 首先我们根据前面的介绍来分析js闭包有什么作用,他会给我们编程带来什么好处? 闭包是为了更方便我们在处理js函数的时候会遇到以下的几 ...
随机推荐
- CSS: Table-Layout & Word-Break 设置表和列的宽度固定不变
1. 设置Table的列宽由表格宽度和列宽度设定(指定表格宽度,各个列宽度): table#tbl_id{table-layout:fixed;} 2. 设置TD内容根据宽度进行换行,即使字符串之间无 ...
- SQL Server聚合函数
聚合函数对一组值计算后返回单个值.除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null).所有的聚合函数均为确定性函数.即任何时候使用一组相同的输入值调用聚合函数执行后的返 ...
- qsort的另类玩法,无聊写着耍耍
#include <stdio.h>#include <stdlib.h>char cmp_shellcode[] = "\x55" "\x89\ ...
- 通过jstack定位在线运行java系统故障_案例1
问题描述: 在一个在线运行的java web系统中,会定时运行一个FTP上传的任务,结果有一天发现,文件正常生成后却没有上传. 问题初步分析: 1.查看日志文件 发现这个任务只打印了开始进入FTP处理 ...
- c++ 03
一.面向对象编程 1.什么是对象?什么是对象编程? 1)万物皆对象 2)世界是由一组相互之间紧密联系的对象组成的. 3)通过将对象按照属性和行为共性进行分类,达到将具体事物进行抽象的效果. 4)通过程 ...
- C# WEB API ApiController 修改response header contentType
var res = Request.CreateResponse(HttpStatusCode.OK, file); res.Content.Headers.ContentType = new Med ...
- iOS面试知识点
1 iOS基础 1.1 父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝. 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复 ...
- JVM结构、GC工作机制详解
JVM结构.内存分配.垃圾回收算法.垃圾收集器.下面我们一一来看. 一.JVM结构 根据<java虚拟机规范>规定,JVM的基本结构一般如下图所示: 从左图可知,JVM主要包括四个部分 ...
- poj 1088 滑雪问题
滑雪问题 import java.util.Scanner; public class Main{ static int a[][],r,c; public static void main(Stri ...
- [转]IDENT_CURRENT、SCOPE_IDENTITY、@@IDENTITY 差異對照表
本文转自:http://www.dotblogs.com.tw/hunterpo/archive/2009/09/04/10421.aspx IDENT_CURRENT.SCOPE_IDENTITY ...