Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
1.1. 封装性是面象对象编程中的三大特性之一 三个基本的特性:封装、继承与多态1
1.3. 魔术常量(Magic constants) 预定义变量2
1.5. 构造函数 __construct( ) vs xxxCls()3
1.6. 析构函数名称必须是__destruct( ) finally()3
1.11. serialize() 检查类中是否有魔术名称 __sleep 的函数。4
1.1. 封装性是面象对象编程中的三大特性之一 三个基本的特性:封装、继承与多态
,封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:
1. 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。
2. 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。
1.2. 魔术方法 预定义方法
实现魔术方法的机制,单根继承。。。
如果已经有了,那么适用多重继承机制实现。。
Super_magic
1.3. 魔术常量(Magic constants) 预定义变量
PHP中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量。
· __LINE__,文件中的当前行号
· __FILE__,文件的完整路径和文件名
· __DIR__,文件所在的目录
· __FUNCTION__,函数名称
· __CLASS__,类的名称
· __TRAIT__,Trait的名字
· __METHOD__,类的方法名
· __NAMESPACE__,当前命名空间的名称
这些魔术常量常常被用于获得当前环境信息或者记录日志。
1.4. 适用领域 js php java c#
Js的面向对象
1.5. 构造函数 __construct( ) vs xxxCls()
__construct( )。这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构 造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个php4中的写法,与类名相同名的构造方法。
格式
1.6. 析构函数名称必须是__destruct( ) finally()
1.7. 私有属性 与工友属性
1.8. $this指针
$this就是对象内部代表这个对象的引用,在对象内部和调用本对象的成员和对象外部调用对象的成员所使用的方式是一样的。
1.9. __autoload() 类自动加载
很多开发者写面向对象的应用程序时,对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表。
在软件开发的系统中,不可能把所有的类都写在一个PHP文件中,当在一个PHP文件中需要调用另一个文件中声明的类时,就需要通过include把 这个文件引入。不过有的时候,在文件众多的项目中,要一一将所需类的文件都include进来,是一个很让人头疼的事,所以我们能不能在用到什么类的时 候,再把这个类所在的php文件导入呢?这就是我们这里我们要讲的自动加载类。
function __autoload($classname)
{
require_once $classname . '.php';
}
//MyClass1类不存在时,自动调用__autoload()函数,传入参数”MyClass1”
$obj = new MyClass1();
1.10. __clone
1.11. serialize() 检查类中是否有魔术名称 __sleep 的函数。
如果这样,该函数将在任何序列化之前运行。它可以清除对象并应该返回一个包含有该对象中应被序列化的所有变量名的数组。
使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。
相反地,unserialize() 检查具有魔术名称 __wakeup 的函数的存在。如果存在,此函数可以重建对象可能具有的任何资源。使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。
1.12. __invoke
当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。PHP5.3.0以上版本有效
1.13. __callStatic
它的工作方式类似于 __call() 魔术方法,__callStatic() 是为了处理静态方法调用,PHP5.3.0以上版本有效。
PHP 确实加强了对 __callStatic() 方法的定义;它必须是公共的,并且必须被声明为静态的。同样,__call() 魔术方法必须被定义为公共的,所有其他魔术方法都必须如此
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
相关文章
- java map 二维数组_Java二维数组实现简单Map
- Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
- java传真发送,用Java发送传真解决之道
- Java多态性:Java什么是多态?
- python和java的区别-python与java区别[通俗易懂]
- oracle number对应java数据类型BigDecimal
- 【说站】java泛型类的使用语法
- 通过pycharm安装python_JAVA开发环境
- java在线播放_Java实现视频在线播放flv视频
- 【错误记录】Java AWT 图形界面编程报错 ( Exception in thread “main“ java.awt.AWTError: BoxLayout can‘t be shared )
- java.util.ConcurrentHashMap (JDK 1.8)详解编程语言
- Java Math.sqrt()方法详解编程语言
- Java操作MySQL数据库:实现看似不可能的梦想(java连接mysql数据库)
- Linux下Java开发:给初学者的指引(linux下java编程)
- Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码详解编程语言
- MySQL数据库开发实践:用 Java 开发中文应用(mysql中文java)
- Oracle转Java实现跨平台开发的奇妙之旅(oracle转java)
- 自动提交MySQL事务中的Java自动提交实践(mysql事务java)
- 模式Java应用Redis中的过期模式实现(redisjava过期)
- 环境的基础Linux:Java环境的支撑者(linux是java)
- 策略Java中Redis过期策略的实现(redisjava过期)
- 数据处理使用Java从Redis中清理过期数据(redisjava过期)
- 在Linux环境下轻松搭建Java开发环境(linux下搭建java)
- Linux平台上C语言接口调用Java语言实现(linux c调java)
- Java与Oracle 一种天生的结合(java属于oracle)
- 询Java与Oracle联合查询更高效的数据处理方式(java oracle查)
- Java消息处理实践突破性技术Redis(redis消息 java)
- javascript实现的像java、c#之类的sleep暂停的函数代码
- 浅析java希尔排序(Shell)算法