PHP面向对象(OOP)----访问限制符
访问控制修饰符指public、protected、private三个关键词来修饰类的成员属性和成员方法,可以有不同的权限
public:[共有的]类里面调用和类外面调用都是可以的
protected:[受保护的]类里面可以被调用,类外面不可以。
private:[私有的]类里面可以被调用,类外面不可以。
类的继承
继承就是对已有的类进行一个复用的使用。
继承之后可以自动拥有被继承的类的成员属性和成员方法
我们通常把被继承的类叫做父类(也叫做基类),继承别人的类叫做子类也叫做派生类
父类拥有的修饰符被继承的时候会有区别
一个父类可以被多个子类来继承
子类还可以继续被继承
继承具有传递性
语法
通过extends关键词来实现
访问修饰符在继承里面的权限问题
| 类内部 | 类外部 | 继承里面 | |
|---|---|---|---|
| public | 1 | 1 | 1 |
| protected | 1 | 0 | 1 |
| private | 1 | 0 | 0 |
继承遇到访问修饰符的权限问题
3 public
2 protected
1 private
当父类是public的时候,子类只能是public
当父类是protected的时候,子类可以是public、protected
当父类是private的时候,子类可以是public、protected、private
注意注意注意
所有的魔术方法都会被继承
所有的魔术方法都可以被重载
parent关键词
可以在子类中调用父类的构造方法
parent::__construct();
在子类中调用父类的方法
parent::say();
在子类调用父类的析构方法
parent::destruct();
final关键词
所有定义了final关键词的类都不能被继承
final class jilei
{
}
静态成员方法
可以不实例化类直接使用类名::方法名调用,用起来比较方便
如下使用
class Wan
{
public static $time = '1天';
public static function xxx()
{
//在类的内部调用静态成员属性使用[类名::属性]或者[self::属性],推荐在类的内部使用self
echo '在内部调用静态属性'.self::$time.'的方法,或者使用'.Wan::$time;
echo '这个是一个静态方法';
//在类的内部调用静态的成员方法同属性
self::yuKuai();
}
public static function yuKuai()
{
ehco '来来来,一起来玩吧';
}
}
//在类的外面调用静态的成员方法
Wan::xxx();
//在类的外面调用静态的成员属性,一定要加$符号
Wan::$time;
PHP面向对象(OOP)----访问限制符的更多相关文章
- Java 访问限制符 在同一包中或在不同包中:使用类创建对象的权限 & 对象访问成员变量与方法的权限 & 继承的权限 & 深入理解protected权限
一.实例成员与类成员 1. 当类的字节码被加载到内存, 类中类变量.类方法即被分配了相应内存空间.入口地址(所有对象共享). 2. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...
- [Python_4] Python 面向对象(OOP)
0. 说明 Python 面向对象(OOP) 笔记.迭代磁盘文件.析构函数.内置方法.多重继承.异常处理 参考 Python面向对象 1. 面向对象 # -*-coding:utf-8-*- &quo ...
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...
- php面向对象(OOP)编程完全教程
摘自:http://www.php-note.com/article/detail/41 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行P ...
- 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...
- JAVA面向对象-----成员内部类访问细节
JAVA面向对象-–成员内部类访问细节 私有的成员内部类不能在其他类中直接创建内部类对象来访问. 如果内部类中包含有静态成员,那么java规定内部类必须声明为静态的访问静态内部类的形式:Outer.I ...
- 面向对象(OOP)基本概念
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
- python-面向对象-01_面向对象(OOP)基本概念
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
随机推荐
- ie下的bug之button
场景描述: 现在页面设计是都喜欢自定义按钮样式,某日接收到页面发现在ie下有bug,上代码: <div> <button><span><a href=&quo ...
- mysql中的tinyint在C#中的类型
mysql中的tinyint在C#中的类型 在C#中对应的类型是System.SByte,不是byte.
- C++高级编程1 C++速成
C++高级编程1 C++速成 1.常用的预处理指令 #include [file] #define key value 这个是在C中经常使用的,定义常量数值,用于字符串替换的工作. #ifndef k ...
- Prism 4 文档 ---第8章 导航
作为同用户具有丰富的交互的客户端应用程序,它的用户界面(UI)将会持续不断的更新来反映用户工作的当前的任务和数据.用户界面可以进行一段时间相当大的变化作为用户交互的应用程序中完成各种任务.通过 ...
- LeetCode OJ:Swap Nodes in Pairs(成对交换节点)
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
- Mac上安装第三方应用显示包资源破坏解决办法
Mac上安装第三方应用显示包资源破坏解决办法 步骤1:Spotlight搜索(快捷键:command+空格或右上角搜索的符号):搜索 “终端”步骤2:直接复制粘贴 sudo spctl --maste ...
- 剑指offer--39. 跳台阶
时间限制:1秒 空间限制:32768K 热度指数:375795 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). cla ...
- Shell 命令行统计 apache 网站日志访问IP以及IP归属地
Shell 命令行统计 apache 网站日志访问IP以及IP归属地 我的一个站点用 apache 服务跑着,积攒了很多的日志.我想用 shell 看看有哪些人访问过我的站点,并且他来自哪里. 因为日 ...
- 测试实战经验之checklist篇20140905
我们测试中,在各个环节应该有自己的一个checklis来帮助我们梳理我们要做什么,该做什么,以下是我的一个小总结: 1.在测试前我们需要做的: 2.在拿到测试包后我们该做的 3.测试通过后我们该做的 ...
- Familia:百度NLP开源的中文主题模型应用工具包
参考:Familia的Github项目地址.百度NLP专栏介绍 Familia 开源项目包含文档主题推断工具.语义匹配计算工具以及基于工业级语料训练的三种主题模型:Latent Dirichlet A ...