php类与对象听不明白,PHP类与对象使用---技巧总结
public(公有):公有类可以在任何地方被访问;
protected(受保护):受保护的类成员则可以被其自身及其子类和父类访问;
private(私有):只能被自身的类访问。
1、类常量const :类中始终保持不变的值定义为常量,且定义和使用常量的时候不需要使用 $ 符号
注意:常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
2、自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如self,parent或static)。
3、范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问 静态 成员,类常量,还可以用于覆盖类中的属性和方法。
self,parent和static这三个特殊的关键字是用于在类定义的内部对其属性或方法进行访问的。
4、PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
abstract class AbstractClass
{
// 强制要求子类定义这些方法
abstract protected functiongetValue();
abstract protected functionprefixValue($prefix);
// 普通方法(非抽象方法)
public functionprintOut() {
print$this->getValue() ."\n";
}
}
classConcreteClass1extendsAbstractClass
{
protected functiongetValue() {
return"ConcreteClass1";
}
public functionprefixValue($prefix) {
return"{$prefix}ConcreteClass1";
}
}
class ConcreteClass2 extends AbstractClass
{
public functiongetValue() {
return"ConcreteClass2";
}
public functionprefixValue($prefix) {
return"{$prefix}ConcreteClass2";
}
}
$class1= newConcreteClass1;
$class1->printOut();
echo$class1->prefixValue('FOO_') ."\n";
$class2= newConcreteClass2;
$class2->printOut();
echo$class2->prefixValue('FOO_') ."\n";
?>
答案
ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2
5、使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
接口是通过interface关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
接口中定义的所有方法都必须是公有,这是接口的特性。
要实现一个接口,使用implements操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
php类与对象听不明白,PHP类与对象使用---技巧总结相关推荐
- java类的方法 作用 属性_JAVA:类和对象(秒懂版)
JAVA:类和对象(秒懂版) 本节我们重点研究对象和类的概念. 1.现实生活中的对象和类. 对象: 一个具体的实体.一个具体的实例(不是抽象的,是具象的). 举例: 你写字的笔.我的电脑 描述我的电脑 ...
- 这次要说不明白 immutable 类,我就怎么地!
作者 | 沉默王二 头图 | CSDN 下载自视觉中国 二哥,你能给我说说为什么 String 是 immutable 类吗?我想研究它,想知道为什么它就不可变了,这种强烈的愿望就像想研究浩瀚的星空一 ...
- 日期类的实现(C++编写练习类与对象)
日期类的实现(C++编写) 本篇目录 日期类的实现(C++编写) 1.类与对象: 2.日期类的实现 2.1类的结构 2.2类的构造函数 2.3类的析构函数 2.4类的拷贝构造函数 2.5运算符重载 2 ...
- 严重: 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.co
原文 BeanFactory创建Bean实例错误,原因可能是项目的builderpath中的JDK版本莫名被调成默认的了,如javase1.5,重新移除添加系统的jdk即可. 2022.2.14 补充 ...
- 一个星期使用三种不同的开发模式完成资讯类App——《听风资讯》
文章目录 1.引言 2.App开发模式的主要区别 3.App开发模式在开发项目时所使用到的技术栈 4.App开发时的感想 4.1 Native App(原生App) 4.1.1 Material De ...
- 【C++】【读个小故事就弄懂】为什么基类指针可以指向派生类对象,而派生类指针却不可以指向基类对象?(最易懂最有趣最生动的举例)
在内存中,一个基类类型的指针是覆盖N个单位长度的内存空间. 当其指向派生类的时候,由于派生类元素在内存中堆放是:前N个是基类的元素,N之后的是派生类的元素. 于是基类的指针就可 ...
- java初始化实例化_Java对象的创建过程:类的初始化与实例化
一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...
- java类的修饰词有哪些_Java类与对象及访问控制修饰词解析
Java 是个纯面向对象语言,不支持过程式编程,所有操作都是基于对象. 一.类 类是 Java 中的一种引用数据类型,引用数据类型值都存储在堆中.类是构造对象的模板,每个类对象都是类通过 new 语句 ...
- python类、对象、方法、属性之类与对象笔记
为什么80%的码农都做不了架构师?>>> python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... ...
最新文章
- iphone怎么重启_苹果手机进入itunes怎么退出
- 团队冲刺第二阶段-2
- mysql正则表达式配置,MySQL REGEXP:正则表达式
- Cloud for Customer的前端UI5是如何启动的
- 文件夹恢复后java运行慢,eclipse中每次重新启动服务,运行环境下的文件夹或者文件被还原...
- Android之解决TabLayout里面每个Tab项的间距和修改指示线的长度(非反射)和修改选中字体大小
- java加减乘除运算顺序_java 实现加减乘除混合运算
- 在Solaris系统下如何更改网络配置?
- windows 安装PyAudio库
- linux data目录权限,Linux 文件目录权限
- Windows Notepad 迎来重大更新!
- linux java maven_Linux安装java环境和maven
- 全选、取消全选、单选
- mysql instance安装_mysql一机多实例安装记录
- 我个人的未来5年IT学习计划
- 西门子FB284伺服v90profinet程序西门子触摸屏程序
- 十大经典排序算法-堆排序算法详解
- 笔记本上的小键盘计算机怎样用,笔记本小键盘如何关闭和开启 小键盘不能用了怎么办...
- c语言变量类型char,C语言中char变量详解
- 冰心吴文藻的爱情始于留学远洋客轮上
热门文章
- 如何针对数据中心进行安全疏散和消防应急管理
- YAPI部署及使用文档
- 松鼠的新家(树上点差分 + LCA)
- 洛谷 P3258 [JLOI2014]松鼠的新家
- 开源中最好的Web开发的资源 ——来自CoolShell.cn
- c#:mvc单选按钮(性别)
- 用JAVA打印出等腰三角形
- 5.23 C语言练习(平均值计算:输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。)
- 浙大计算机学院博士生读几年,中国200万在读硕士生和博士生,每月能拿到多少补助?...
- RTT WK2412 spi-uart