【2】static 、construct
【面向对象】
两个概念:
什么是类
具有一批相同属性的集合
什么是对象
特指的某一个具体的事物
【面向对象的三大特征】
1、封装
public 公共的
protected 受保护的
private 私有的
2、继承
extends
3、多态(PHP里面不明显)
【怎么声明一个类】
class Person
{
}
【类里面 的东西】
两个
分别是:
1、成员属性
就是变量
2、成员方法
就是函数
【什么是编程语言对象】
实例化的类就是对象
【怎么实例化】
关键字:new 类名()
() -> 可以加可以不加 建议加上
为什么??
【$this】
代表当前类
【魔术方法】 magic
【__construct 构造方法】 重点
触发时机:
当实例化(new)这个类的时候自动触发
作用:
初始化一批成员属性的时候使用
参数:
可以有可以没有 可有可无
如果你定义了形参,你必须传实参,不然报错
与普通函数一样
【__destruct 析构方法】重点
触发时机:
销毁一个对象或者程序执行完毕的时候自动触发(PHP垃圾回收机制);
unset($person);
作用:
数据库关闭连接
参数:没有参数
如果有参数就报错
【__get】重点
触发时机:
在类的外部 访问 一个受保护或者是私有的成员属性的时候自动触发
作用:封装
参数:必须有一个参数,而且这个参数代表着 你在外部访问的私有的受保护的成员属性名字
【__set】重点
触发时机:
在类的外部 给于 一个受保护或者私有的成员属性赋值的时候自动触发
参数:
必须有两个参数分别是:
第一个:你要设置的私有的受保护的成员属性 名字
第二个:你要设置的私有的受保护的成员属性的 值
【__unset】重点
触发时机:
当你在类的外部销毁一个私有的或者受保护的成员属性的时候自动触发
参数:
必须有一个参数
参数代表你外部销毁的私有的或受保护的成员属性 名字
【__isset】重点
触发时机:
当 外部用isset去 判断 一个私有的或受保护的成员属性的时候自动触发
参数:
必须有一个参数
这个参数是私有的或受保护的成员属性名字
【__call】重点
触发时机:
当外部 访问 一个 不存在 的成员方法的时候自动触发
参数:
必须要两个参数分别是:
1、外部调用的不存在的成员 方法名
2、外部传入的 实参,并且以数组的形式返回
通过call 方法可以实现连贯操作????
注意:在类的外部不能访问私有的 或者是受保护的成员属性 和方法
【三个关键字】
public 公共的
1、在类的内部可以访问
2、在类的外部可以访问
3、在继承可以访问
protectred 受保护的
1、在类的内部可以访问
2、在继承可以访问
private 私有的
1、在类的内部可以访问
【继承】重点
你爸爸有钱
你爷爷有钱
你爸爸打班主任
你爸爸智商高
他爸爸拾金不昧
他爸爸嫖娼
他爸爸进去了
你 和 他 担任的角色是不是都是 子
爸爸 担任的都是 父
PHP是单继承(在以后会用trait模拟多继承的问题)
两个概念:
父类(基类)
子类(派生类)
【方法重载】
怎么样子类使用父类里面的方法
1、$this->父类方法名字
2、parent::父类方法名字(推荐使用这个)
3、父类名字::父类方法名字
【关于__construct】
子类重载父类构造方法的时候需要注意几点
1、父类的构造方法有几个形参,你 必须传几个
2、默认值与 普通函数一样....
注意:当子类里面 的成员方法名 与 父类里面方法名字 一样的时候 会覆盖父类的方法
如果你想使用父类的里的方法 用 parent::父类方法名
【关键字】
fianl
1、使用fianl 修饰的类不能被子类继承使用
2、使用fianl 关键字修饰的成员方法不能被重载
3、fianl 关键字可以 与 public protected private 配合使用效果是叠加
【定义常量】define('常量名' , '常量的值')
类里面定义常量
const 常量名字(一般大写)
在子类里面怎么使用?
1、self::常量名字(推荐)
2、parent::常量名字
3、$this::常量名字
4、父类名字::常量名字
5、子类名字::常量名字
【static关键字】
使用:
类的外部
类名::
对象::
类的内部
self::
$this::
子类:
parnet::
在外部使用静态成员方法
$t = new Test();
$t::say(); 对象的方式
$t->say(); 普通的方式
Test::say();类名::的方式(这种)
【2】static 、construct的更多相关文章
- 【DevExpresss】3、LookUpEdit详解(转载)
[DevExpresss]3.LookUpEdit详解 哈,今天又用到了LookUpEdit控件,主要是用来实现模糊查询和自由输入功能,然而由于长时间没用了,一阵手忙脚乱的,这里把网上收集的一部分教程 ...
- 【Spring】17、spring cache 与redis缓存整合
spring cache,基本能够满足一般应用对缓存的需求,但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具备持 ...
- 【转】四、可空类型Nullable<T>到底是什么鬼
[转]四.可空类型Nullable<T>到底是什么鬼 值类型为什么不可以为空 首先我们都知道引用类型默认值都是null,而值类型的默认值都有非null. 为什么引用类型可以为空?因为引用类 ...
- 【liferay】5、使用PortletURL进行跨portlet通信 liferay6.2
[问题] 1.当我们一个页面存在多一个portlet的时候,如在不同的portlet之间传参? [解决办法] 1.在liferay官方有几种方式,比较复杂麻烦,不是太实用,这里不再赘述. 2.通过fr ...
- 【JavaSE】day03_Date、SimpleDateFormat、Calendar、Collection
[JavaSE]day03_Date.SimpleDateFormat.Calendar.Collection 1.Date及其经常使用API 1)JAVA 中的时间 Java中的时间使用标准类库的D ...
- WPF权限控制——【3】数据库、自定义弹窗、表单验证
你相信"物竞天择,适者生存"这样的学说吗?但是我们今天却在提倡"尊老爱幼,救死扶伤",帮助并救护弱势群体:第二次世界大战期间,希特勒认为自己是优等民族,劣势民族 ...
- 【JAVA】【NIO】3、Java NIO Channel
Java NIO和流量相似,但有些差异: ·通道可读写,流仅支持单向.读或写 ·异步通道读取 ·通道读写器,他们是和Buffer交替 道的实现 下面是Java NIO中最重要的通道的实现: ·File ...
- 【UML】概念、关联、画画(一)
最近画UML画画,于UML观看视频后还没有学会.它是的结果UML九图是不是太懂,我想加深绘制过程的理解,我一个新的水平. 现在我觉得是时候..地介绍一下UML.了解一下它的基本内容.达到深入浅出的效果 ...
- 【JAVA】【NIO】5、Java NIO Scatter / Gather
标题手段Java NIO该分散体浓缩 Java NIO内置支持分散与收集.的概念主要用于信道分散聚集的读写. 读出的分散体的一个通道被读多个数据buffer在.因此.数据分散到多个buffer中. 对 ...
随机推荐
- ArcGIS中国工具,版权声明,本人没有授权任何单位和个人销售,其他都是盗版,为了你个人和单位利益,请勿购买。 销售QQ:27652980,853740877,电话:18987281928,13108507190,qq群310964401
ArcGIS中国工具,版权声明,本人没有授权任何单位和个人销售,其他都是盗版,为了你个人和单位利益,请勿购买.销售QQ:27652980,853740877,电话:18987281928,131085 ...
- YUV420序列转成图片
首先声明一点,这里的YUV其实不是YUV,严格来说是YCbCr.这里就先这样称呼YUV吧.本文是关于YUV420格式的视频转成图片序列的. 关于YUV格式的图片,存储如下图所示: 举个例子,一个640 ...
- 招聘移动APP、接口、自动化、性能和安全方面的兼职测试讲师
只要您在移动APP.接口.自动化.性能和安全方面有丰富的测试经验,我们都欢迎您能加入我们,成为我们的兼职测试讲师,我们可以提供给您一份优厚的薪资,同时能在行业发展.企业培训.授课经验.出版专业著作等方 ...
- JavaScript JSON对象(一)
一.JSON数据 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是“名值对”的集合.结构由大括号'{}',中括号 ...
- Hadoop+HBase 集群搭建
Hadoop+HBase 集群搭建 1. 环境准备 说明:本次集群搭建使用系统版本Centos 7.5 ,软件版本 V3.1.1. 1.1 配置说明 本次集群搭建共三台机器,具体说明下: 主机名 IP ...
- 【技能意志矩阵-skill will matrix】工作中究竟是个人能力更重要,还是我们的积极性更能提高我们的业绩?
工作中究竟是个人能力更重要,还是我们的积极性更能提高我们的业绩? 我们可以通过建立“个人能力(即技能)”和“积极性(即意志)”的矩阵(skill will matrix),找到自己的象限,并根据指导意 ...
- Windows平台下nginx跨域配置
1)下载地址: http://nginx.org 2)启动 解压至d:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹D:\n ...
- Effective Java 第三版——78. 同步访问共享的可变数据
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- PHP 开发者的 Docker 之旅
用 PHP 作为我们「Docker 开发大礼包」开篇是带着一些朝圣的心情的.这是一门堪称「古老」的语言,这也是一门争议最多的语言,这更是一门不断涅槃的语言.「PHP 是最好的语言」这个流传已久的梗,或 ...
- Windows Server 2008 IIS安装FTP及端口配置
添加角色IIS,选择上FTP服务 打开IIS,右击网站,添加FTP站点 允许访问的指定用户,必须是Windows系统真实存在的用户,为了安全起见,此用户只赋予user组即可,不能赋予远程桌面权限 如果 ...